我有一个表单,它使用下拉框和隐藏的表单字段将信息传递到php页面,这一切都有效,除非我尝试使用AJAX传递信息。如果我直接发送到工作正常的php页面,所以我知道错误必须在我的AJAx代码中,下面是我的HTML表单和我的AJAX代码。
<form action="" method="POST" id="update" class="update" name="update">
<select name="status">
<option value="Open">Open</option>
<option value="Closed">Closed</option>
<option value="On Hold">On Hold</option>
</select>
<input type="hidden" name="joborder_id" value="<?php echo "$joborder_id"; ?>">
<input type="submit" name="submit" class="update" value="update"/>
</form>
$(document).ready(function(){
$('form.update').submit(function () {
var status = $(this).find('.status').attr('value');
var joborder_id = $(this).find('.joborder_id').attr('value');
// ...
$.ajax({
type: "POST",
url: "update_status.php",
data: "status="+ status +"& joborder_id="+ joborder_id,
success: function(){
$('form.update').hide(function() {$('div.success').fadeOut();});
}
});
return false;
});
});
PHP部分,这是非常基础的,看它是否有效
include ("../connect/db.php");
// CLIENT INFORMATION
$status = $_POST['status'];
$joborder_id = $_POST['joborder_id'];
$result = mysql_query("UPDATE joborders SET status='$status' WHERE joborder_id='$joborder_id'")
or die(mysql_error());
答案 0 :(得分:0)
尝试使用表单的serializeArray发送信息并通知dataType json。
...
data: $("#form_id").serializeArray(),
dataType: 'json',
...
答案 1 :(得分:0)
将数据作为JSON对象发送,如下所示:
$(document).ready(function(){
$('form.update').submit(function () {
$.ajax({
type: "POST",
url: "update_status.php",
data: {
status: $(this).find('.status').val(),
oborder_id: $(this).find('.joborder_id').val()
},
success: function(data){
console.log(data);
$('form.update').hide(function() {$('div.success').fadeOut();});
}
});
return false;
});
});
如果您要发送表单中的所有字段,可以将data: { ... },
替换为:
data: $(this).serializeArray(),