2011-10-21 84 views
3

這是我的頭,我第一次點擊時,它提交與警報data.msg罰款。但第二次,只有ajax什麼也沒有,警報「結束在這裏「仍然着火,所以我認爲事件點擊沒有問題。我的ajax有什麼問題?由於序列化的東西?JQuery AJAX不會在第二次後觸發

   $('#inv-btn-submit').live('click',function(e) { 

        $.ajax({ 
         type : 'POST', 
         url : '<?= base_url();?>main/insertInvoice', 
         dataType : 'json', 
         data: {product_list:$('.namabarang').serializeArray(), 
          qty_list : $('.qty').serializeArray(), 
          cost_list : $('.cost').serializeArray(), 
          customer_meta:$('#customer input, textarea').serializeArray() 
         }, 

         success : function(data){ 
          alert(data.msg); 


         }, 
         error : function(XMLHttpRequest, textStatus, errorThrown) { 
          alert('There was an error. '); 
         } 
        });//end of ajax 
        alert("end here"); 
        return false; 

       });// end of button click 
+0

您能否使用Chrome的開發者工具等瀏覽器工具查看xhr請求是否被髮送? – Quincy

+0

我不能立即看到這裏有什麼問題(對我來說可能爲時過早!),但是如果您打開開發人員工具/螢火蟲/類似的東西,您是否看到正在向服務器發送什麼請求? –

+0

你可以看看它是否試圖發送帖子(在螢火蟲/即開發/鉻開發等),或劑量它得到那麼遠? –

回答

0

serializeArray工作在一個表格選擇e.g:$('form').serializeArray();將返回數組數據發佈請求的URI/URL不知道它會在各個輸入工作。 注意,我已經把die()放在了現場,因爲這會殺死任何以前的事件。可能還需要 ,也可能需要添加e.preventDefault();,以阻止表單在提交時刷新頁面。

$('#inv-btn-submit').die().live('click',function(e) { 
    var get_data = $('form').serializeArray(); 
    $.ajax({ 
    type : 'POST', 
    url : '<?= base_url();?>main/insertInvoice', 
    dataType : 'json', 
    data: get_data, 
    success : function(data){ 
     alert(data.msg); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
     alert('There was an error. '); 
    } 
});//end of ajax 
alert("end here"); 
return false; 
});// end of button click 
2

你可以嘗試關閉不同步只是由 設置他的電話。 異步:假

$('#inv-btn-submit').live('click',function(e) { 

       $.ajax({ 
        type : 'POST', 
        url : '<?= base_url();?>main/insertInvoice', 
        dataType : 'json', 
        data: {product_list:$('.namabarang').serializeArray(), 
         qty_list : $('.qty').serializeArray(), 
         cost_list : $('.cost').serializeArray(), 
         customer_meta:$('#customer input, textarea').serializeArray() 
        }, 

        async: false, 

        success : function(data){ 
         alert(data.msg); 


        }, 
        error : function(XMLHttpRequest, textStatus, errorThrown) { 
         alert('There was an error. '); 
        } 
       });//end of ajax 
       alert("end here"); 
       return false; 

      });// 
0

我想你也可以這樣做:

... 
data: {product_list: return $('.namabarang').serializeArray(), 
... 

關於前直播()方法調用我想沒有必要的模具()方法。 我的2美分!

0

控制檯告訴很多,它仍然發送的數據,我意識到第二次提交我必須更新該發票,但我的PHP腳本走向了錯誤的方向,並沒有json數據被回顯,它的怪異如果沒有回調數據,錯誤功能不會觸發。感謝球員提示。

相關問題