我需要运行 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);
}
?>
答案 0 :(得分:2)
答案是你不要在这种情况下使用它。如果在jQuery AJAX调用上指定dataType: 'json'
,它将自动将响应解析为JSON。
如果解析成功(服务器返回有效的JSON),则生成的对象将传递给success
回调函数。如果解析失败,则执行error
回调函数(如果已指定)。