如何使用jquery / ajax首先填充第二个列表框

时间:2014-06-13 10:50:19

标签: php jquery mysql ajax json

Mysql表" DemoTable" (id - >自动增量)

id   subject_id  subject_name  question  exams
1        3         sub3         ques1    e1,e4
2        3         sub3         ques2    e1
3        2         sub2         ques3    e1
4        2         sub2         ques4    e3,e5

我有 2选择框(列表框) -

<select name='exam' id="exam" >
<option value=0>All (<?=$total_tq?> Qs.)</option> 
<?php echo $options_exam; ?>
</select>

<select name='subject' id="subject"></select>

我正在填充第一个选择框,如此查询 -

<?php

$sql_exam="SELECT distinct exams FROM DemoTable ORDER BY exams ASC"; 
$result_exam=mysql_query($sql_exam);
$options_exam=""; 

while ($row_exam=mysql_fetch_array($result_exam)) {
$exam_name=$row_exam["Exams"]; 
$sql_teq="SELECT COUNT(*) as `num` FROM DemoTable where exams like '$exam_name'";
$row_teq = mysql_fetch_array(mysql_query($sql_teq));
$total_teq = $row_teq['num'];
$options_exam.="<OPTION VALUE=\"$exam_name\">".$exam_name.' ('.$total_teq.' Qs.)</option>';
}

$sql_tq="SELECT COUNT(*) as `num` FROM DemoTable";
$row_tq = mysql_fetch_array(mysql_query($sql_tq));
$total_tq = $row_tq['num'];

?>

我想要的是填充类似于第一个的第二个选择框,但是改变第一个的值。在jquery之后添加

$('#exam').change(function()
{
var exam = $(this).find('option:selected').val();
$.post('exam.php', {exam: exam},
function(data){
alert(data);
//What should I write here to populate data into second table
});
});

我的 exam.php

<?php
include("connect.php"); // database connection
$exam=$_POST["exam"];
$queryResult = mysql_query("SELECT distinct subject_id, subject_name FROM med_qbank where exams like '%$exam%'") or die(mysql_error());
$results = array();
while($line = mysql_fetch_array($queryResult, MYSQL_ASSOC)){
$results[] = $line;
}
// $results dont contain number of questions of each subject in bracket, how to do that?
echo json_encode($results);
?>

当我在alert(data);上使用('#exam').change()检查输出时使用上述代码,它以json格式显示subject_id和subject_name但我无法使用var myarray = JSON.parse(data);解析

Q.1。如何解析和填充exam.php的输出?

Q.2。我应该在哪里(如何)添加sql查询(在exam.php中)来计算每个主题的问题数量,以便在选择框中显示(类似于第一个选择框$options_exam.="<OPTION VALUE=\"$exam_name\">".$exam_name.' ('.$total_teq.' Qs.)</option>')< / p>

谢谢,问候,

0 个答案:

没有答案