json 応答を伴う単純な php への ajax 呼び出しがあります。私はこれらを何度も書いてきましたが、この問題に遭遇したことはありません。
Ajax は「id」パラメーターを正常に送信し、PHP はそれを受信して動作し、json 応答を返します。これが問題の始まりです。パラメータの1つは常にnullです。理由が見つからないようです。PHP を手動でテストしたところ、両方の値が返されました。ajaxをチェックして、idパラメーターが復活するかどうかを確認しました。したがって、問題は、json 応答が送信され、jquery ajax によって受信されることです。
// This gets the paramaters from the url
theParams = parseURLParams(document.URL);
// ^^ it returns an id, like this {"id":"4a17bcb93fe3fac3978671a66959d902"}
$.ajax({
url: 'viewer_code.php',
type: 'GET',
dataType: 'json',
data: {id: theParams.id},
success: function(dataImg) {
alert(dataImg.imgUrl);
}
});
およびPHP(すべて問題ないようで、すべてサニタイズされます)
$id = $_GET['id'];
$q = "SELECT * FROM `images` WHERE id = '$id'";
if(!($result_set = mysql_query($q))) die(mysql_error());
$row = mysql_fetch_array($result_set);
$thumb = $row['thumb'];
$image = $row['image'];
header('Content-Type: application/json');
echo json_encode(array("imgUrl" => $image, "id" => $id));
PHP を手動でテストすると、次のように返されます。
常にnullを返すのはimgUrlです。なぜこれが起こっているのか誰にも分かりますか? ああ、SOに関する以前の質問が示唆したように、GETからPOSTに切り替えてみましたが、違いはありませんでした。
助けてくれてありがとう、乾杯みんな:)