使用AJAX从二维PHP数组创建二维jQuery数组


Creating a 2-dimensional jQuery array from a 2-dimensional PHP array with AJAX

我使用jQuery, AJAX和PHP来更新事件上的下拉框的内容。我的代码当前触发事件并使用AJAX调用一个PHP函数,该函数转到数据库并获取与下拉列表的每个成员相关联的记录。

我目前可以返回这个二维数组(记录的数组与列的数组在每一个)回到我的jQuery函数,但我在如何将数组转换成我可以使用的东西的损失。

调用AJAX的jQuery代码:

    var element= $('select[name=elementName]');
    var data = 'inData=' + element.val();
    // Call AJAX to get the info we need to fill the drop downs by passing in the new ID
    $.ajax(
    {
        type: "POST",
        url: "ops.php",
        data: "op=getInfo&" + data,
        success: 
        function(outData) 
        {   
            // WHAT DO I DO HERE TO CONVERT 'outData' INTO A 2-DIMENSIONAL jQUERY ARRAY??
        },
        error:
        function()
        {
        }
    }); 
PHP代码:

$sqlResults= mysql_query("SELECT data FROM table WHERE id='".$_POST['inData']."'"); 
$outData = array();
// Fill the data array with the results
while ($outData[]= mysql_fetch_array($sqlResults));
// echo the data to return it for use in the jQuery file
echo $outData;

发布的代码工作正常-我只是不知道如何在jQuery中读取'outData'。

提前感谢任何帮助!!

你看过json_encode吗?

echo json_encode($outData);

这将把它转换成一个可以被jQuery读取的json对象

你在找json

//php
echo json_encode($outData);
//javascript
$.ajax({
    type: "POST",
    url: "ops.php",
    data: "op=getInfo&" + data,
    dataType: "json",
    success: function(outData) {   
        console.log(outData); //this will be an object just like 
                              //your php associative array
    },
    error: function() {
    }
});

JSON可以做到这一点,但是为什么不从另一个角度来看呢?

如果你正在ping PHP以获取更新的信息,只需让PHP在选择框中输出你想要的选项值。然后使用jQuery AJAX返回的HTML将结果输入到select元素中。HTML()。

有几种不同的方法来给猫剥皮,我认为这种更简单的方法将为您赢得更多的时间来执行更多的jQuery魔法。

jQuery不能读取PHP数组的回显信息。在输出前使用json_encode:

 echo json_encode($outData);

这是jQuery可以解析为响应的格式