2015-11-02 133 views
-1

我不知道爲什麼我的表單不是發佈,而是隻是重新加載頁面。jQuery Ajax POST表單不能發佈

我可以用$.ajax({type:GET})來做到這一點。但是這樣做並不正確,因爲我所有的腳本都將數據發佈到數據庫。

我也試過把$('#status-form').serialize()'status=' + status_value加到$.ajax({data:})。但不起作用。只刷新頁面並不向數據庫提交任何內容。

這裏是我的jQuery:

$(document).on('click', '.edit',function() { 
    var project_id_value=$(this).closest('tr').find('.project_id').text(); 
    $('#popup').show(); 
    $('#popup').load('scripts/form.php'); 

$(document).on('click',".bttt", function(){ 
    var status_value=$('#status option:selected').val(); 
    var formData = $('#status-form').serialize(); 
    $.ajax({ 
     type:POST, 
     url:'scripts/change-status.php?project_id=' + project_id_value, 
     data:formData, 
     success: function(data){ 
      alert(data)}, 
     }); 
    }); 
return false; 
}); 

形式:

<form method="post" id="status-form"> 
<select name="status" id="status"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">Closed</option> 
</select> 
<button class="bttt">Hello</button> 
</form> 

編輯:

我有固定的錯字錯。仍然有同樣的問題

SOLUTION:

我找到了解決方案,這是爲什麼呢瀏覽器使用刷新,什麼也不做。由於我使用的是Firefox和Firefox,因此將表單中的任何按鈕作爲提交按鈕。當我點擊該按鈕時,它被用於在達到$ .ajax({success:})之前發佈表單。我必須做的是給按鈕一個type="button"

+1

你的PHP無關,與你的問題。請發佈*呈現* HTML,而不是PHP源代碼。 – j08691

+0

你確定控制檯沒有顯示錯誤嗎? –

+0

嵌套的點擊功能是使這很難排除故障的事情之一。 –

回答

1

該類型必須表示爲一個字符串。因此,這是type: 'POST'

+1

或'方法:」POST「'爲最新的jQuery版本。 – TGrif

+0

沒有工作。仍然是同樣的問題:( – user3284463

+0

此外,我沒有得到成功的戒備 – user3284463

1

就在表單提交,下面的代碼應該工作

$(document).on('click',".bttt", function(){ 
    var status_value=$('#status option:selected').val(); 
    var formData = $('#status-form').serialize(); 
    var project_id_value = 123; 
    $.ajax({ 
     type:'POST', 
     url:'change-status.php?project_id=' + project_id_value, 
     data:formData, 
     success: function(data){ 
      alert(data); 
     } 
    }); 
    return false; 
});