在我的网站我有一个表格,用户可以填写在数据库中更新记录,表单低于...更新的形式返回
<form class='bill-upd'>
<input type='hidden' value='".$info['rand']."' name='rand2' id='rand2'>
<input type='hidden' value='".$info['id']."' name='billid' id='billid'>
Total <input type='text' id='total' name='total' title='".$info['bill']."' class='defaultText' /><br />
Bill name<input type='text' id='bill-name' name='bill-name' title='".$info['bill_name']."' class='defaultText' /><br />
bill descriptiion <input type='text' id='bill-description' name='bill-description' title='".$info['bill_description']."' class='defaultText' /><br />
category <select id='bill-category' name='bill-category'>
<option value='Household Bills'>Household Bills</option>
<option value='Social Activities'>Social Activities</option>
</select>
<input type='button' value='Save' class='bill-upd-submit' />
</form>
然后我使用AJAX来发送这个数据到我的表并更新相应的记录,这工作正常。
AJAX
$(".bill-upd-submit").click(function() {
var elem = $(this);
$.post("update_bill.php", elem.parent(".bill-upd").serialize(), function(data) {
// fade new data in
elem.closest('li').html(data);
});
});
PHP
$uid = $_SESSION['oauth_id'];
$id = mysql_real_escape_string($_POST['billid']);
$bill = mysql_real_escape_string($_POST['total']);
$billname = mysql_real_escape_string($_POST['bill-name']);
$billdescription = mysql_real_escape_string($_POST['bill-description']);
$billcolour = mysql_real_escape_string($_POST['bill-category']);
$rand = mysql_real_escape_string($_POST['rand2']);
#update Record
$query = mysql_query("UPDATE `outgoings` SET id = '$id', user_id = '$uid', bill = '$bill', bill_name = '$billname', bill_description = '$billdescription', bill_colour = '$billcolour', rand = '$rand' WHERE user_id = '$uid' AND rand = '$rand' ") or die(mysql_error());
Print "<span class='cost'>£".$bill . "</span> ";
Print "<h4 class='bill-name'>".$billname . "</h4> ";
Print "<p class='bill-details'><span class='bill-category'>".$billdescription . "</span> ";
Print "<span class='bill-description'>". $billcolour . "</span></p>";
echo "<a href='#' class='edit-bill'>edit</a>
<form class='bill-upd show'>
<input type='hidden' value='".$rand."' name='rand2' id='rand2'>
<input type='hidden' value='".$billname."' name='billid' id='billid''>
Total <input type='text' title='".$bill."' id='total' name='total' value='".$bill."'/><br />
Bill name<input type='text' id='bill-name' name='bill-name' value='".$billname."'/><br />
bill descriptiion <input type='text' id='bill-description' name='bill-description' value='".$billdescription."'/><br />
bill colour<input type='text' id='bill-colour' name='bill-colour'value='".$billcolour."'/>
<input type='button' value='Save' class='bill-upd-submit' />
</form>
<form class='delete-bill'>
<input type='hidden' value='".$rand."' name='rand2' id='rand2'>
<input type='button' value='delete' class='delete' />
</form>
";
一旦更新了我的Ajax然后返回周围的一切奠定了理所应当的数据,只是这一次,如果我填写表格出它不更新我的表,如果我刷新我的页面,我可以填写它,但它的工作原理,有没有人知道我可能做错了什么?谢谢
给你的表单一个名称属性,然后再试一次。我在某处读到缺少表单名称可能会阻止ajax发布。 – Stefan 2012-04-27 20:43:00
如果这不起作用,'.on()'也不起作用,那么你可能需要在你的php脚本的输出中重新添加你的ajax(在脚本标签之间)。 – Stefan 2012-04-27 20:48:52