php - 如何正确使用parseJSON?

标签 php javascript mysql json

Possible Duplicate:
How to send a json string back to jquery

我需要运行myquery.php,然后我需要在JavaScript函数createChartControl中使用此php代码的输出。下面是我的完整代码。问题是警报消息 ( alert(returned_array) ) 没有出现,并且函数 createChartControl 没有执行。我单独测试了myquery.php,它工作正常。

<script>
function updateList(){
    $.ajax({
        url: "myquery.php",
        type: 'GET',  
        data: { query: "SELECT tm FROM schedule WHERE val='BT009';" }, 
        dataType: 'json',
        success: function (data) { 
                 var returned_array = $.parseJSON(data);
                 alert(returned_array);
                 createChartControl('schedule', returned_array);
        }
   })
}

$(document).ready(function() {
    updateList();
});
</script>


<script type="text/javascript" language="JavaScript">
function createChartControl(htmlDiv1,data)
{
//...
}
</script>


<?php
include_once 'include/connect_db.php';

    $query = $_GET['query'];    

    $condb = connectDB();
    $result=execute_query($query);
    closeDB($condb);

    $rows = array();

    while($row = mysql_fetch_array($result)) {
            $rows[] = $row['tm'];
    }   

    return $rows;
?>

更新:仍然说:你的ajax刚刚失败

function updateList(){
   $.ajax({
          url: 'myquery.php',
          type: 'POST',
          data: {'query': "SELECT tm FROM schedule WHERE val='BT009';" }
        }).done(function(data) {
           console.log(data);
//         createChartControl('schedule', returned_array);
        }).fail(function() {
           console.log('Your ajax just failed');
    });
}

myquery.php

<?php
include_once 'include/connect_db.php';

if (isset($_POST['query'])) {
    $query = $_POST['query'];   

    echo($query);

    $condb = connectDB();
    $result=execute_query($query);
    closeDB($condb);

    $rows = array();

    if ($result && mysql_num_rows($result)) {
        while($row = mysql_fetch_array($result)) {
            $rows[] = $row['tm'];
        }
    }   

    echo json_encode($rows);
}
?>

最佳答案

答案是您不会在这种情况下使用它。如果您在 jQuery AJAX 调用上指定 dataType: 'json',它将自动将响应解析为 JSON。

如果解析成功(服务器返回有效的 JSON),则结果对象将传递给 success 回调函数。如果解析失败,则执行error回调函数(如果已指定)。

关于php - 如何正确使用parseJSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11908940/

相关文章:

php - 从带有异常的 url 中删除 .php (htaccess)

javascript - 在 JavaScript 中,手动控制事件监听器的顺序

javascript - 检查输入是否是数字或其他内容

mysql - 选择与其他记录无关的记录

php - 只显示今天和 future 的数据

php - Angularjs获取post查询结果

php - 发布循环数据,然后使用 PDO 保存

javascript - 我可以从网络浏览器获取操作系统吗?

mysql - 我怎样才能让这个查询运行得更快?

MySql 更新查询无法正常工作-一般错误