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/