2015-11-02 130 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; 
});