使用JSON发送数组

时间:2012-08-08 08:27:06

标签: jquery json

我正在使用此代码作为选项标记的发布文本:

$("#major_names").change(function () {
    $.post('find_lesson.php',  { dars:$("#major_names option:selected").text() },
        function(data){ 
            if (data.success)
                        $("div").append(data.doroos);
            else
                alert('mm');
        },'json'); 
return false; 
});

现在在find_lesson文件中我使用此代码从数据库中获取任何记录

<?php

$lessonName=$_POST['lesson '];
$query= mysql_query("SELECT * FROM at_*** WHERE title = '{$lessonName}'");
$result= mysql_fetch_array($query);

$sql= mysql_query("SELECT * FROM  *** JOIN at_lessons ON  . . .");
while($result=mysql_fetch_assoc($sql))
{
$data ['doroos']= $result['title'];
}
$data['success']=true;


echo json_encode($data);

?>

mysql命令是正确的但是在发送数组后我得到了1条记录。请帮帮我

2 个答案:

答案 0 :(得分:5)

更改

$data ['doroos']= $result['title'];

$data ['doroos'][] = $result['title'];

您基本上覆盖了doroos。相反,请使用[]将每个$result['title']添加到doroos

答案 1 :(得分:0)

你应该做类似下面的事情。否则“doroos”将只从获取的结果集中获得最后一个标题记录。

<?php

$lessonName=$_POST['lesson '];
$query= mysql_query("SELECT * FROM at_*** WHERE title = '{$lessonName}'");
$result= mysql_fetch_array($query);

$sql= mysql_query("SELECT * FROM  *** JOIN at_lessons ON  . . .");

$doroos = array();
$x = 0;
while($result=mysql_fetch_assoc($sql))
{    
     $doroos[x++] = $result['title'];
}
$data ['doroos']= $doroos;
$data['success']=true;


echo json_encode($data);

?>