我使用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可以解析为响应的格式