私の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 );