私は W3 Schools の AJAX PHP Example (http://www.w3schools.com/ajax/ajax_aspphp.asp) を、MySQL データベースではなくLocalStorageに格納されたデータを使用するゲストリスト Web アプリの基盤として使用しています。ユーザーがオフラインで検索できるようにします。今、私は検索ゲストの部分を完成させようとしています。
これがどのように機能するかです (上記の例とは異なります):
- (index.php)。MySQL db のすべてのレコードを javascript 配列に配置/ミラーリングする
- (index.php)。上記の js 配列を LocalStorage に格納する
- (index.php)。例で使用されている AJAX GET コードを使用して、検索された項目を getData.html (W3 のように php ファイルではなく html ファイル) に送信します。
- (getData.html)。URL パラメーターを介して検索されたアイテムを正常に取得する
- (getData.html)。上記の例のように、値をループして一致させます (コードは JavaScript で書き直されます)。
しかし、ここで私の成功は終わります。AJAX コードは上記の例と同じで (もちろん getData.html への参照を除いて)、それ以外はすべて機能しているように見えるので、コード全体については説明しません。言及された例では、PHPファイルの一番下に
//output the response
echo $response;
これは、JavaScriptが失敗しているように見える場所です。私は必死に応答をエコー/出力しようとしましたが、何らかの理由でindex.php に正しく返されません。少なくとも何かを強制的に表示する唯一の方法は、php echo を使用するか、単純に HTML タグ内の getData ドキュメントのどこかに単純な HTML テキストを書き込むことです。getElementById('txtHint').innerHTML = "hello"; も試しました。動作するかどうかを確認しますが、成功しません。
これを行う最も明白な方法は、単純に echo $response を js の同等のものに置き換えることです。
document.write(response);
しかし、どんな document.write が印刷されても、何も表示されません。「ヒント」がポップアップするはずの div はまだ空です。私は解決策、js変数を印刷するさまざまな方法をグーグルで検索しましたが、それ以上成功しませんでした。おそらく、document.write は XML または AJAX responseText と「互換性」がないのでしょうか? これには簡単な解決策があるはずです。皆さんが私を助けてくれることを願っています。ありがとう!