2016-04-01 13 views
0

Hey guys, sunucu tarafında Spring MVC frameworkünü kullanıyorum ve istemci tarafında JS/Jquery ajax, veritabanı Oracle'dır.Tek bir düğmeyle ilişkilerle (yabancı anahtar) birden çok tabloya jquery ajax gönderi gönderme

3 adımda bir form sihirbazım var ve bu form doldurulmuş tüm verileri birden çok tabloya gönderecek.

İşte ne çalışıyor -> Ana tabloya (Business Info tablosu) ekleme, her şey beklendiği gibi tabloya girdi.

Not: Tablo tetik ve dizi yöntemi kullanılarak otomatik artışlı değere ayarlanır.

Not2: Aşağıdaki tüm JS'ler tek düğmeyle gönderim etkinliği altında, hangisinin çalıştığını ve hangisinin olmadığını göstermek için ayırdım. Burada

 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; 
} 

Bununla birlikte, bu temel birincil anahtarın bağlantılı başka tablolara itilmesi gerekmektedir şeklinde başka bir alan, yani, Bahar denetleyicisi kodudur (İş Bilgisi PK -> UBI_ID sütunu)

Başka bir tablo, Business_Id sütununa Business_info tablosuna (Ubi_id) sütununda yabancı anahtar olarak davranan Business_Id sütununa sahiptir.

Eklenen birincil anahtarın değerini nasıl alabilirim ve bu diğer tabloya nasıl ittiririm? İşte

Ben (başka eylem oluşturmak yoluyla) çalışmıyor benim JS dosyasında (içinde Sonra
@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(); 
} 

, ben tarayıcının konsolunda 404 var İlkbahar Kontrolörü yargılanması budur

$.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); 
      } 
     }); 
Aşağıda

Ben

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); 
    } 
}); 

eklemeye çalışıyorum biridir Ya, benim yaklaşım yanlış mı? Lütfen bazı biri beni aydınlatsın. Teşekkür ederim.

cevap

0

ajax aramanızın sonuna bir "," ve sonuna eklemeyi unutmuşsunuzdur.

$.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); 
     }, 

Sonunda "," eklemeye çalışın. Hala benim 404

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

Kodumda var. Yukarıdaki yorumlu kodun hemen arkasında, doğru veya emin olmadığından emin değilim. – Luqman

+0

Hayır, eğer eklerseniz, sonunda yok sayılır, yanıtta söylediğim gibi ayarlayın. url: 'ev/umkei/bilgi/businessId /' + ubiId, // yorum – cralfaro

+0

yaptım. Yorum mevcut kodda değil. Aynı söylediğin gibi ayarlandı. Sadece SO yorumunu ekledim çünkü ubiId değerini elde etmek için yardıma ihtiyacım var. – Luqman

İlgili konular