1

getJSONを使用するコードを作成しました(以下を参照)。FireBugは次のエラーメッセージを返します。

"NetworkError: 500 Internal Server Error - http://localhost:10088/test/myquery.php?query=SELECT%20tm%20FROM%20schedule%20WHERE%20val=%27BT009%27;"

このエラーの理由がわかりません。どんな助けでも大歓迎です。

PSこのSQLクエリをMySQLクエリブラウザでテストしました。3行を返しました。

mainPage.php

<script>
function updateList(){
   var query = "SELECT tm FROM schedule WHERE val='BT009';";

   $.getJSON(
           'myquery.php?query='+query,
           function(data) 
           {
               alert(data);
           }   
   );

}

$(document).ready(function() {
    updateList();
});

</script>

myquery.php

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

if (isset($_GET['query'])) {
    $query = $_GET['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'];
        }
    }   

    var_dump($rows);

    echo json_encode($rows);

} else {
    echo json_encode("Failed");
}
?>
4

3 に答える 3

2

内部サーバーエラー(コード500)はサーバー側のエラーであり、AJAXとは関係ありません。これは通常、サーバー側のコードが正しくないことが原因です。構文を確認し、ブラウザからページを表示してみてください。このページには、エラーの詳細も印刷されている可能性があります。

于 2012-08-11T10:57:01.607 に答える
0

firebug を使用してみてください。ブラウザでこのコードを実行しているときに firebug を実行してください。エラーの原因と、修正が必要な場所がわかります。お役に立てば幸いです。

于 2013-07-10T11:25:53.343 に答える
0

サーバーがクエリパラメーターを理解するのに苦労していると思います。エンコードしてみてください:

'myquery.php?query='+encodeURIComponent(query)

他の誰かが述べたように、あなたがしていることは安全ではありません。サービスを実行するためにクエリを渡すべきではありません!

編集: 別の可能性は、$.getJSON() に 3 つの引数を渡していないことです。試す:

$.getJSON(
   'myquery.php',
   {query: query},
   function(data) {
      alert(data);
   }   
);
于 2012-08-11T11:19:29.773 に答える