javascriptを使用して動的コンテンツをWebページに取得しようとしています。何かが間違っていて、私はそれが何であるかを考え出すのに問題があります。 Firebugでは、JSONデータが必要に応じて取得されていることがわかります。 「DOM」の下でFirebugを見ると、ページ(JSONデータのURLではなく実際に作成したページ)にアクセスしているURLは赤色になります(下記のスクリーンショットを参照)。ここに私のjavascriptは次のとおりです。JQuery.getJsonが正しく起動されていません
$(document).ready(function() {
$('#target').click(function() {
alert("At least I',m reached ");
$.getJSON('http://localhost/timereporting/phpscriptlibrary/get_remaining_hours.php', function(data) {
document.getElementById('errorDiv').innerHTML = "Divtext";
alert("Inside getJason");
});
alert("At least I',m done ");
});
これは私のPHPファイルの重要な部分である:
$json_string = "{\"activities\": ";
$json_string = $json_string."[";
for ($counter = 0; $counter < $num; $counter += 1) {
$json_string = $json_string."[".mysql_result($rows,$counter,'date').", \"".mysql_result($rows,$counter,'activity_id')."\", ".mysql_result($rows,$counter,'hours')."]";
if($counter != ($num-1)){
$json_string = $json_string.", ";
}
}
$json_string = $json_string."]}";
echo $json_string;
私は「エコー」はJavaScriptにJSONデータを「送信」するための方法であると仮定しますか?
ファンクバグのJSONデータは、2つの異なる方法で表示されます。以下のスクリーンショットを見ると、2番目のスクリーンショットは「1988」などのようなものですが、最初のスクリーンショットでは「2010-12-10」のように完了しています。最初のスクリーンショットは、どのようにしてそれを送信しようとしているのかを示しています。明らかに、ある時点でこれが受信されています。
私のdivタグが日付で更新されない、または$ .getJSON内の警告がトリガされないのはどういう意味ですか、前後の警告のみですか?
:
は
json_encode
、のようなものを使用し、手動で文字列を作成しないでください?ヘッダー( 'Content-type:application/json'); ヘッダー( 'Cache-Control:no-cache、must-revalidate'); –このようなことは長期間に渡る時間を節約し、バグを減らすのに役立ちます。間違いなく、このツールまたはそれに類似したものを使用してください。 – jmort253
@poelinca:私はそれが必須ではないと思いますが、それは間違いなく働くでしょうが、間違いなく助けになります。 –