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>
谢谢,问候,