2012-04-09 11 views
2

ゲストリストWebアプリの基礎として、W3 SchoolsのAJAX PHPの例(http://www.w3schools.com/ajax/ajax_aspphp.asp)を使用しています。LocalStorageに格納されているデータを使用しています。ユーザーがオフラインで検索できるように、MySQLデータベース。今、私は検索ゲストパーツを完成させようとしています。PHPからJS:AJAX responseTextと互換性のあるjs変数(PHPエコーのような)を出力しますか?

これは、それがどのように動作するかである(とは、上記の例からを異なる):

  1. (index.phpを)。 MySQLデータベースのすべてのレコードを javascript配列
  2. (index.php)に配置/ミラーリングする。上記のjs配列をLocalStorageに格納する。
  3. (index.php)。この例で使用したAJAX GETコードを使用すると、 は、検索したアイテムをgetData.html( PHPファイルの代わりにhtmlファイル)に送信します。
  4. (getData.html)。検索したアイテムを URLパラメータ
  5. (getData.html)で正常に取得しました。上の例の のようにループして値を一致させます(javascriptでコードを書き換えます)。

しかしは、ここに私の成功を終了します。 AJAXコードは、上記の例のコードと同じです(もちろんgetData.htmlへの参照を除く)、他のものはすべて動作しているように見えますので、コード全体を邪魔することはありません。上記の例では、PHPファイルのまさにその部分には、

//output the response 
    echo $response; 

ここにjavascriptが失敗しているようです。私は必死に応答をエコー/プリントしようとしていましたが、何らかの理由でがindex.phpに正しく返されません。少なくとも何かを表示させる唯一の方法は、PHPエコーを使うか、単にHTMLタグ内のgetDataドキュメントのどこかにプレーンhtmlテキストを書き込むことです。私はgetElementById( 'txtHint')も試みました。innerHTML = "hello";それがうまくいくかどうかを確認することができます。これを行うには

最も明白な方法は単にJSで同等のエコー$応答を置き換えるために、次のようになります。

document.write(response); 

が、何のdocument.write印刷物、何もdipslayedんです。 "ヒント"がポップアップされるはずのdivは、の空の場合はです。私は解決策を探ってきました.JS変数を印刷する別の方法はこれ以上成功しませんでした。おそらく、document.writeはXMLまたはAJAX responseTextと "互換性がありません"?これには単純な解決策が必要です。あなたが私を助けてくれることを願っています。ありがとう!

+2

[W3Schoolsの以外のソースを使用することを検討してください。]にしてください(のhttp:// w3fools。 com) – Pointy

+0

あまりにも多くの情報がここにあります。基本的な問題をより正確に判断するために、一歩前進して少し慎重に診断することをお勧めします。それを茹でる。クリティカルな部分では、 "echo $ response"を使うと言いますが、これはjavascriptが失敗するところです。これは私には意味がありません。 echoはphp文です。どのようにjavascriptが失敗する原因になりますか?また、** index.phpに正しく返されないと言っても意味がありません**。 Index.phpは実行してEMITSの出力を行うスクリプトです。何も返されません。このことについてもう少し分析する必要があります。 – Cheeso

+0

私はそれについてあなたと議論するつもりはありませんが、説明が簡単ではない複雑な問題であれば、私は答えがわかります。そして、表現についてのすべての肛門になるのではなく、むしろ私の意味を理解しようとしてください。 しかし結論は簡単です: 私はPHPエコーと同じように変数を出力するためにjavascriptを使用することができます。実際にgetDataからインデックスに返されるものは何もわかりませんが、示されているように、AJAXの部分はgetDataで何が印刷されているのか分かりませんが、それはTworkを獲得しました。 docuemtn.write(respons)は、PHPエコーと同じ変数を出力しません。 – Jonathan

答えて

0

phpはもちろん、ページを発行してバックエンドで動作するサーバー側の言語です。
jsは、もちろん、ユーザーのフロントエンドで実行されるクライアント側の言語です。
document.write()は、クライアント側のテキストを出力するための適切な関数です。ページ読み込み時に実行されます。例:

<b>My domain is: <script>document.write(document.domain);</script></b> 

が正しく

を与える私のドメインがある:www.mydomain.com

関連する問題