1

私のphpスクリプトを呼び出すために、次のjQueryコードを作成しようとしています:

<html>
<head>
    <script src="parser/js/jquery-1.10.2.js" type="text/javascript"></script>
    <script src="parser/js/jquery-1.9.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $ (document).ready(function() {
            currCity = "ROME (FCO)";
            $.ajax({
                url: 'parser/php/get_data.php', 
                type: "GET",
                data: currCity, 
                dataType: "json",    
                success: function(array){
                    alert ("AJAX succeeded!");
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log(jqXHR.status + "    " + textStatus);
                    console.log(errorThrown);
                }
            });
        });
    </script>
</head>
<body>
    <div id="test">Text</div>
</body>
</html>

このような単純なphpスクリプトを使用していたときでも(データ型と成功関数のコールバック値なし):

<?php
   echo "Got here";
?>

次のエラーが発生しました。

200    parsererror

demo.html (line 17)
Error: Invalid XML: <?php echo "Got here"; ?>

これが私が解決しようとしている最初のエラーです。Ajax は私の php-script を xml として認識しているようです。これが、実行する必要がある実際の php スクリプトです。データベースからいくつかのデータを抽出し、2 レベルの配列を作成してそれらを格納し、その配列を JSON で Ajax に返します。

<?php
require 'mysql_login.php';

if (isset($_GET['currCity'])) {
    $str = $_GET['currCity']; 
    echo "Got the value: " + $str;
} 

$db = new mysqli( $mysqlhost, $mysqluser, $mysqlpwd, $airplaneDB) or die ("Connection to database failed".$db->connect_error);
$result = mysqli_query($db, "SELECT * FROM Airplanes ORDER BY time") or die ("Problem retreiving data from database.");

$planes = array();

while ($row = mysqli_fetch_array ($result, MYSQLI_ASSOC)) {
    $flightData = {$row['flightID'], $row['flightLink'], $row['orig'], $row['dest'], $row['time']};
    array_push($planes, $flightData);
}

echo json_encode($planes);
?>

そこで、JSON の認識に問題があるようです。エラーは次のとおりです。

200    parsererror

demo.html (line 17)
SyntaxError: JSON.parse: unexpected character

return window.JSON.parse( data );
4

0 に答える 0