我在PHP循环中填充多个表单,并将它们与<form id='X'>
区分开来
它们在HTML中看起来像这样:
<form id='34' class='customer_contact' name='customercontact' method='post' action='customerUpdate.php'>
Förnamn: <br /><input type='text' name='contact_firstname' class='textbox' value='text....'>
Efternamn: <br /><input type='text' name='contact_lastname' class='textbox' value='text....'>
Telefonnummer: <br /><input type='text' name='contact_phone' class='textbox' value='text....'>
Mobiltelefon: <br /><input type='text' name='contact_cellphone' class='textbox' value='text....'>
E-mail: <br /><input type='text' name='contact_email' class='textbox' value='text....'>
<select name='isActive'>
<option value="0" selected>Inaktiv</option>
<option value="1">Aktiv</option>
</select>
</form>
我尝试使用以下代码序列化它们:
<script type="text/javascript">
$(document).ready(function() {
$('#customer_contact_save').live('click', function(e){
e.preventDefault();
$.each($('form.customer_contact'), function(index) {
var sData = $(this).serialize();
$.ajax({
type: "POST",
url: "updateCustomer.php",
data: sData,
success: function(someMessageFromPhp) {
alert(someMessageFromPhp);
}
});
});
});
});
(感谢Zagor23在SO上的代码)
但我的POST
数据为空(我正在使用FireBug查看发送的内容)。
我尝试在脚本中添加console.log(sData);
但FireBug返回:(an empty string)
并且php var_dump($_POST);
也为空..
任何人都知道出了什么问题?
答案 0 :(得分:8)
事实证明,在我的实际代码中,我忘记将name
添加到我的输入字段(facepalm)。
无论如何,谢谢!
答案 1 :(得分:1)
这样的事情怎么样?
$(".customer_contact").each(function()
{
var form_id = $(this).attr("id");
var sData = $("#" + form_id).serialize();
$.ajax({
type: "POST",
url: "updateCustomer.php",
data: sData,
success: function(someMessageFromPhp) {
alert(someMessageFromPhp);
}
});
});
答案 2 :(得分:1)
这是我用你的代码制作的小提琴 - http://jsfiddle.net/7Y9vn/ 如果你打开萤火虫并按下按钮,你会看到两个请求都运行正常,所以你应该在页面上搜索其他代码错误