使用jquery从动态php页面检索数据到javascript

时间:2013-05-02 07:33:47

标签: php javascript json

这是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页面?如果您认为它很奇怪,请随意改变我的方法。谢谢......

2 个答案:

答案 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',

阅读jquery.ajax

答案 1 :(得分:0)

由于您正在接收JSON数据,我怀疑您是否希望将它们放入HTML元素中。我要么改变我的PHP文件来生成HTML元素,要么实现som javascript逻辑来根据服务器提供的JSON数据创建元素。