[英]Trouble POSTing form with AJAX
編輯-信息似乎正在發布,但是在form_data.php上似乎並沒有檢索到發布的值
這是AJAX
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$("#submit_boxes").submit(function() { return false; });
$('input[type=submit]').click(function() {
$.ajax({
type: 'POST',
url: 'form_data.php',
data: $(this).serialize(),
success: function(data) {
$('#view_inputs').html(data); //view_inputs contains a PHP generated table with data that is processed from the post. Is this doable or does it have to be javascript?
});
return false;
});
};
</script>
</head>
這是我要提交的表格
<form action="#" id = "submit_boxes">
<input type= "submit" name="submit_value"/>
<input type="textbox" name="new_input">
</form>
這是將信息發布到的form_data頁面
<?php
if($_POST['new_input']){
echo "submitted";
$value = $_POST['new_input'];
$add_to_box = new dynamic_box();
array_push($add_to_box->box_values,$value);
print_r($add_to_box->box_values);
}
?>
您提交表單是因為您遇到錯誤,導致阻止提交表單的代碼無法運行。 具體來說是dataType: dataType
和this.html(data)
。 首先, dataType
是undefined
,如果您不知道如何設置數據類型,則將其忽略。 其次, this
是指沒有html
方法的form元素,您可能的意思是$(this).html(data)
盡管這不太可能是您想要的,很可能是您想要的$(this).serialize()
。 所以你的代碼應該看起來像
$('form#submit_boxes').submit(function() {
$.ajax({
type: 'POST',
url: 'form_data.php',
data: $(this).serialize(),
success: success
})
return false;
});
另外,如果您必須在表單提交處理程序中調試ajax,那么您要做的第一件事就是阻止表單提交(返回false只能在最后完成),這樣您就可以看到發生了什么錯誤。
$('form#submit_boxes').submit(function(event) {
event.preventDefault();
...
});
您可以使用jQuery的.serialize()
方法發送表單數據
以下一些不錯的鏈接供您了解
一種處理方式...
取消通常的表單提交:
$("#submit_boxes").submit(function() { return false; });
然后為您的按鈕分配一個點擊處理程序:
$('input[type=submit]').click(function() {
$.ajax({
type: 'POST',
url: 'form_data.php',
data: this.html(data),
success: success,
dataType: dataType
})
return false;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.