这是arrivalPlay.php。如果用户点击来自arrivalRead.php的数据并使网址变为arrivalPlay.php?id = 1(2,3,4,5等),则会加载此页面。
<?php
$con = mysqli_connect("localhost","admin","admin","flight_status");
$id = $_GET['id'];
$getrow = mysqli_query($con, "SELECT * FROM arrival WHERE id='$id'");
$row = mysqli_fetch_array($getrow);
mysqli_close($con);
$order = array(1,2,3,4);
foreach ($order as $o) {
$res[$o][f] = $row[$o];
}
json_encode($res);
?>
这是getData.js文件。文件文件接收res并将传递给'mp'。
<script>
function aha() {
$.ajax({
url:'arrivalPlay.php',
data:{id:3},
dataType:'json',
type:'GET',
success:function(data){
document.write(data[1].f);
document.write(data[2].f);
document.write(data[3].f);
document.write(data[4].f);
}
});
}
</script>
如果网址变为arrivalPlay.php?id = X,则网页arrivalPlay.php只有数据。有没有办法从'动态'php中检索数据到javascript页面?如果您认为它很奇怪,请随意改变我的方法。谢谢......
答案 0 :(得分:0)
试试这个:
首先在服务器页面中echo
json_encode($res);
应为echo json_encode($res);
如果它不起作用,那么试试这段代码
<script>
$(document).ready(function(){
$(document).on('click','#a',function(e){
e.preventDefault();
$.ajax({
url:'arrivalPlay.php',
data:{id:1},
dataType:'json',
success:function(data){
$('#res').html(data);
}
});
});
});
</script>
如果您希望来自服务器的json
,那么只应从json data
传递server
就像你的代码一样
<?php
$con = mysqli_connect("localhost","admin","admin","flight_status");
$id = $_GET['id'];
$getrow = mysqli_query($con, "SELECT * FROM arrival WHERE id='$id'");
$row = mysqli_fetch_array($getrow);
mysqli_close($con);
$res=array();
$order = array('airline','flight','origin','status');
foreach ($order as $o) {
$res[$o] = $row[$o];
}
echo json_encode($res);// echo the json string
// remember that no other output should be generated other than this json
return; //so you can use this line
?>
就够了
但您不希望json
然后使用此代码
echo implode(',',$res);
而不是 echo json_encode($res);
同样在javascript
中删除此选项dataType:'json',
。
答案 1 :(得分:0)
由于您正在接收JSON数据,我怀疑您是否希望将它们放入HTML元素中。我要么改变我的PHP文件来生成HTML元素,要么实现som javascript逻辑来根据服务器提供的JSON数据创建元素。