【问题标题】:jQuery sortable serialize multiple input fieldsjQuery sortable 序列化多个输入字段
【发布时间】:2015-05-28 18:11:23
【问题描述】:

我正在使用 jQuery 可排序插件并尝试使用 AJAX 更新我的数据库,但我无法传递隐藏的输入字段值并收到“未定义索引”错误消息。

这是我的脚本:

$( "#sortable" ).sortable({
    update: function( event, ui ) {
        var postData = $(this).sortable('serialize');

        $.ajax({
            data: postData,
            type: 'POST',
            url: 'save.php'
        });

    }
});

这是我的表格:

<div id="sortable">

    <div id="city">
        <?php echo $city_name ?>

        <input type="checkbox" name="cityStatus[<?php echo $city_ID ?>]" value="1" <?php echo $checked ?>>    
        <input type="hidden" name="cityID[<?php echo $row->city_ID ?>]" value="<?php echo $city_ID ?>">
        <input type="hidden" name="cityOrder[<?php echo $row->city_ID ?>]" value="<?php echo $city_order ?>">
    </div>

</div>

我的 save.php 文件:

foreach($_POST['cityStatus'] as $key => $value) {
    $cityID = $_POST['cityID'][$key];
    $cityStatus = $_POST['cityStatus'][$key];
    $cityOrder = $_POST['cityOrder'][$key];

    $updateCities = $db->execute(
        "UPDATE cities
        SET city_status=?, city_order=?
        WHERE city_ID=$cityID",
        array($cityStatus, $cityOrder));

}

【问题讨论】:

    标签: jquery ajax jquery-ui-sortable


    【解决方案1】:

    你没有告诉 JS 如何发送你的 POST 参数。将您的 JS 更改为:

    data: { 'postData':postData }
    

    这是 key=value 形式的基本意思 "postData=" + postData。它告诉 javascript 和 PHP 您希望将变量 postData 链接到键“postData”,然后您就可以使用 $_POST['postData'] 访问它

    【讨论】:

    • 我仍然收到未定义的索引错误。你能看看我更新的代码吗?
    • 您试图获取未在“数据”部分中定义的键值..即“cityID”等@curved
    猜你喜欢
    • 2013-06-11
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2012-12-03
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多