我的数据库结果是多维数组。 这是我在php文件中的代码。
$course_detail = array();
while($row=mysqli_fetch_assoc($result))
{
//$course_detail[] = $row;
$course_detail[ strtoupper($row['course_name'][0]) ][] = array(
'course_name' => $row['course_name'],
'duration' => $row['duration'],
'c_desc' => $row['c_desc']
);
}
echo json_encode($course_detail);
这是我的Ajax / Javascript / JSON代码。
<script type="text/javascript" >
function fetch(val) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if(xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("response").innerHTML = "";
var j = JSON.parse(xhttp.responseText);
for (var i = 0; i < j.length; i++)
{
document.getElementById("response").innerHTML = j[i]['name'] + ' ' + j[i]['duration']+ ' ' + j[i]['c_desc'] ;
}
}
}
xhttp.open('get', 'stream-process.php?sname='+val, true);
xhttp.send();
}
这个javascript函数是从提交按钮调用的,其中隐藏元素的ID是动态生成的。
以下是代码:
<form action="" method="get">
<?php
$db_manager = new db_manager();
$db_manager->DBLogin();
$sql = "select * from streams";
$result=mysqli_query($db_manager->connection,$sql);
$counter = 1;
while($row=mysqli_fetch_array($result))
{ ?>
<input type="hidden" id="stream_name<?php echo $counter ?>" class="stream" name="sname" value="<?php echo $row["scode"]; ?>">
<li class="list-group-item"><input class="form-control" onclick="fetch(document.getElementById('stream_name<?php echo $counter;?>').value)" type="button" id="submit" value="<?php echo $row["name"]; ?>"/></li>
<?php
$counter++;
}
?>
</form>
</div>
<div id="response" class="stream-detail col-sm-8">
hey there......
</div>
当我点击任何按钮时,没有显示任何内容。它使用Simple多维数组工作正确。但我想要在Associative Multidimensional Array中。这样我就可以区别对待每一行的每个字段。 提前谢谢。