2016-04-01 10 views
0

ちょっと私は、サーバーサイドでSpring MVCフレームワークを使用しています.JA/Jquery、クライアント側のajaxデータベースはOracleです。jquery ajaxポストを複数のテーブルにリレーション(外部​​キー)を1つのボタンで送信する

私は3つのステップでフォームウィザードを持っています。このフォームは、埋め込まれたすべてのデータを複数のテーブルに送信します。

ここがうまくいく - >メインテーブル(ビジネス情報テーブル)に挿入すると、すべてが期待通りにテーブルに入った。

注:表は、トリガーおよびシーケンス方法を使用して自動インクリメンタル値に設定されています。

注2:下記のJSはすべてワンボタン送信イベントの下にあります。どちらのボタンが機能しているのか、どちらではないのかを分けて表示しました。ここ

 submit.on('click',function() { 

     var currentDate = new Date(); 

     var business_data = { 
       ubiId : '', 
       ubiName : business_name.val(), 
       ubiStartDate : moment(business_start_date.val() + ' ' + '00:00 AM', "DD-MM-YYYY hh:mm A"), 
       ubiAddress : business_address.val(), 
       ubiCity : business_city.val(), 
       ubiState : business_state.val(), 
       ubiPostcode : business_postcode.val(), 
       ubiPhone : business_phone.val(), 
       ubiEmail : business_email.val(), 
       ubiType : $('input:radio:checked', businesstype_list).val(), 
       ubiRegisterAgency: $('input:radio:checked', agency_list).val(), 
       ubiRegisterSsm: $('input:radio:checked', ssm_list).val(), 
       ubiStatus: 'P1', 
       ubiAppliedBy: Index.getUserInfo().cmsId, 
       ubiApplyDate: currentDate, 
       ubiSsmNo: ssm_no.val(), 
       ubiOwnerId: matrik_number.val(), 
       ubiOwnerYearstartBusiness: $('input:radio:checked', yearstart).val(), 
       ubiOwnerPhone: student_phoneno.val(), 
       ubiOwnerEmail: student_emailadd.val(), 
       ubiOwnerStudyyear: $('#student_studyyear').val(), 
       ubiOwnerFac: $('#student_faculty_code').val(), 
       ubiLecturerId : lecturer_name.val(), 
       deanId : dean_name.val() 
       //nature : nature_business.val() 
     }; 

     console.log(business_data); 

     $.ajax({ 
      type: "post", 
      url: 'home/umkei/ssuForm/create', 
      data: JSON.stringify(business_data), 
      contentType : "application/json", 
      beforeSend:function(){ 
       showMetronicLoading(el,msgLoading); 
      }, 
      error: function(){ 
       Metronic.unblockUI(el); 
       showMetronicAlert('danger','warning',msgInternetError); 
      }, 
      success: function(){ 
       Metronic.unblockUI(el); 
       //console.log(d); 
       showMetronicAlert('success','check',msgSuccess); 
      } 
     }); 
    }); 

春コントローラにコードされ、

@RequestMapping("/ssuForm/create") 
@ResponseStatus(HttpStatus.OK) 
@ResponseBody 
public UmkeiBusinessInfo createSsuForm(@RequestBody UmkeiBusinessInfo umkeiSsu) { 

    UmkeiBusinessInfo createSsuForm = umkeiBusinessInfoService.create(umkeiSsu); 

    return createSsuForm; 
} 

しかしながら、このメインテーブルの主キーにリンクされた他のテーブルにプッシュする必要がある形でいくつかの他のフィールドが存在します(Business Info PK→UBI_ID列)

Business_Infoテーブル(Ubi_id)列の外部キーとして機能するBusiness_Id列を持つ別のテーブルNature_Businessがあります。

挿入されたプライマリキーの値を取得して、この他のテーブルにプッシュしますか?ここで

は、私は(別のアクションを作成することで)動作していない私のJSファイル(内すると
@RequestMapping("/info/businessId/{ubiId}") 
@ResponseStatus(HttpStatus.OK) 
@ResponseBody 
public String infoBusinessId(@PathVariable("ubiId") String q) throws SQLException { 
    UmkeiBusinessInfo businessInfo = umkeiBusinessInfoService.findById(q); 
    UmkeiBusinessInfo businessId = umkeiBusinessInfoService.findById(businessInfo.getUbiId()); 

     JSONObject o = new JSONObject(); 
     o.put("id", businessId.getUbiId()); 

    return o.toJSONString(); 
} 

が、私は、ブラウザのコンソールに404を得た春コントローラにしようとしたものです

$.ajax({ 
      url: 'home/umkei/info/businessId/'+ ubiId //(I think it has something to with this one??) I dont know what to insert here, 
      dataType: 'json', 
      beforeSend:function(){ 
       showMetronicLoading(el,msgLoading); 
      }, 
      error: function(){ 
       Metronic.unblockUI(el); 
       showMetronicAlert('danger','warning',msgInternetError + '. Failed to load business ID'); 
      }, 
      success: function(){ 
       Metronic.unblockUI(el); 
      } 
     }); 
以下

は私が

var nature = { 
      ubtBusinessInfo: //here is where I need to insert the new id inserted from the above code, 
      ubtBusinessListing: //here is the value which is selected by the user 
    }; 

     //console.log(nature); 

$.ajax({ 
    type: "post", 
    url: 'home/umkei/ssuForm/create/nature', 
    data: JSON.stringify(nature), 
    contentType : "application/json", 
    beforeSend:function(){ 
     showMetronicLoading(el,msgLoading); 
    }, 
    error: function(){ 
     Metronic.unblockUI(el); 
     showMetronicAlert('danger','warning',msgInternetError); 
    }, 
    success: function(d){ 
     Metronic.unblockUI(el); 
     showMetronicAlert('success','check',msgSuccess); 
    } 
}); 

を挿入しようとしているものですか、それは私のアプローチが間違っているのですか?いくつかしてください1つは私を啓発する。ありがとうございました。

答えて

0

「、」とあなたのajax呼び出しの終わりを追加するのを忘れました。

$.ajax({ 
     url: 'home/umkei/info/businessId/'+ ubiId //(I think it has something to with this one??) I dont know what to insert here, 
     dataType: 'json', 
     beforeSend:function(){ 
      showMetronicLoading(el,msgLoading); 
     }, 

"、"を最後に追加してください。それでも私に教えてください404

url: 'home/umkei/info/businessId/'+ ubiId, //comments 
+0

それは私のコードにあります。上記の私のコメントしたコードの裏側にあるのは、私が正しいかどうかわからないからです。 – Luqman

+0

いいえ、あなたが追加すると、最後に無視されます、私は応答で言ったように設定します。 url: 'home/umkei/info/businessId /' + ubiId、//コメント – cralfaro

+0

しました。コメントは現在のコードにはありません。あなたと同じように設定されています。私はubiIdの価値を得るために助けが必要なので、SOにコメントを追加しました。 – Luqman

関連する問題