0

我在一个 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)并且 phpvar_dump($_POST);也是空的..

有人知道出了什么问题吗?

4

3 回答 3

8

事实证明,在我的实际代码中,我忘记添加name到我的输入字段(facepalm)。

不管怎么说,还是要谢谢你!

于 2012-07-17T08:27:12.460 回答
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); 
        }
    });
});
于 2012-07-16T19:21:23.403 回答
1

这是我用你的代码制作的小提琴 - http://jsfiddle.net/7Y9vn/ 如果你打开 firebug 并按下按钮,你会看到两个请求都运行正常,所以你可能应该搜索其他错误页面代码

于 2012-07-17T06:17:15.047 回答