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

时间:2011-07-06 19:53:48

标签: php javascript jquery ajax arrays

我正在使用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'。

提前感谢您的帮助!!

4 个答案:

答案 0 :(得分:1)

你看过json_encode吗?

echo json_encode($outData);

这将把它转换为jQuery对象,可以被jQuery读取。

答案 1 :(得分:1)

您正在寻找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() {

    }
});

答案 2 :(得分:0)

jQuery无法读取PHP数组的回显。在输出之前使用json_encode

 echo json_encode($outData);

这是jQuery实际上可以解析的格式作为响应。

答案 3 :(得分:0)

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

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

有一些不同的方法可以给猫皮肤,我会认为这种更简单的方法可以让你有更多的时间来做更多的jQuery魔法。