0

重複の可能性:
json文字列を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);
}
?>
4

1 に答える 1

2

答えは、このコンテキストでは使用しないということです。jQuery AJAX呼び出しで指定するdataType: 'json'と、応答がJSONとして自動的に解析されます。

解析が成功した場合(サーバーが有効なJSONを返した場合)、結果のオブジェクトはコールバック関数に渡されsuccessます。解析が失敗した場合、errorコールバック関数が実行されます(指定されている場合)。

于 2012-08-10T20:42:34.050 に答える