【问题标题】:Help with an AJAX request帮助处理 AJAX 请求
【发布时间】:2010-04-14 15:09:19
【问题描述】:

问题
我正在尝试对 PHP 脚本执行 ajax 请求,但是在将数据转换为 PHP 所期望的格式时遇到问题,PHP 期望数据以数组中的数组形式出现,例如,

Array
(
    [cv_file] => Array
        (
            [849649717] => Y
            [849649810] => Y
        )

    [save] => Save CVs
)

我尝试了什么?

我尝试在我的 javascript 中创建一个空数组并将其用作数组键,就像这样,

    var cv_file = new Array();
$(".drag_check").draggable({helper:"clone", opacity:"0.5"});
$(".searchPage").droppable({
    accept:".drag_check",
    hoverClass: "dropHover",
    drop: function(ev, ui) {
        var droppedItem = ui.draggable.children();
        cv_file = ui.draggable.children().attr('name');
        var link = ui.draggable.children().attr('name').substr(ui.draggable.children().attr('name').indexOf("[")+1, ui.draggable.children().attr('name').lastIndexOf("]")-8)
        $.ajax({
            type:"POST", 
            url:"/search",
            data:cv_file+"&save=Save CVs",
            success:function(){
                alert(cv_file)
                $('.shortList').append('<li><input type="checkbox" value="Y" class="checkbox" name="remove_cv['+link+']"/><a href="/cv/'+link+'">'+link+'</a></li>');
            },
            error:function() {
                alert("Somthing has gone wrong");
            }
        });

    }
});

我的问题

我怎样才能将数据转换成 PHP 所期望的格式,如果有人可以提供任何帮助,我将不胜感激?

编辑
在提醒 cmets 中的海报建议我让他关注时,

cv_file[849649717]&amp;save=Save CVs

谢谢

【问题讨论】:

  • 在 POST 之前提示以下表达式的结果,并使用结果编辑您的问题。 cv_file+"&amp;save=Save CVs" - 即window.alert(cv_file+"&amp;save=Save CVs");
  • 将警报添加到我的示例中

标签: php javascript ajax jquery-ui jquery


【解决方案1】:

要在后端 PHP 文件中的 PHP 数组中获取结果,您需要创建一个如下所示的字符串以 POST 回服务器:

cv_file[]=849649717&cv_file[]=849649810&save=Save CVs

我不认为你可以使用这种方法创建一个关联数组,但是上面应该给你一个类似$_POST中的数组:

Array
(
    [cv_file] => Array
        (
            0 => 849649717
            1 => 849649810
        )

    [save] => Save CVs
)

然后你可以做一个foreach:

foreach ($_POST['cv_file'] as $cv)
{
    // Do something with $cv;
}

【讨论】:

    【解决方案2】:

    您可以对数组/对象进行字符串化,然后在 PHP 端执行 json_decode 将字符串转换回数组。

    编辑:现在使用正确的 PHP 函数。

    【讨论】:

      【解决方案3】:

      使用 $(form).serializeArray() 构建一个 POST 数据数组。 serializeArray API doc

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 2014-06-21
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2018-11-21
        相关资源
        最近更新 更多