- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jqueryのloadを使って検索結果を表示させたいと思っているのです)
jQueryのloadを使った検索結果の表示でloadできない場合の原因と対策は?
このQ&Aのポイント
- jQueryのloadを使って検索結果を表示させたいと思っているのですが、特定の漢字(例:「歯」)を含むキーワードの場合、loadできない問題が発生しています。utf-8でurlencodeした状態や直接渡しても同じ状態です。単体で動作するsearch.phpにアクセスすると正常に結果が表示されるので、ajaxのloadでの呼び出しに問題があるようです。
- loadできないキーワード(例:「歯」や「会社」)を含む場合、どうしてもloadされなくなってしまいます。エンコードしてもダメで、受け取り側でもデコードしても同様です。原因がわからずお困りです。
- loadできないキーワードの問題は、キーワードによってはloadが正常に行われることから、特定のキーワードのみに起因している可能性があります。原因を特定するためには、キーワードに関連する他の要素(例:特定の文字コード、特殊な文字)を調査する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
単純系でテストしても再現出来ません。 $(document).ready(function(){ $('#search').load('/recvtest.php?keyword=歯', null, function(){}); //$('#search').load('/php/recvtestG.php','keyword=歯', function(){}); //こっちもOK }); (recvtest.php) <?php print_r($_GET); ?> ちゃんと Array ( [keyword] => 歯 ) <==<div id="search"></div>の中身 '歯'となります。('会社'でも) jQueryは1.4です。 HTMLはUTF-8です。 PHPは5.2です。 ※PHP側で、 mbstring.internal_encoding mbstring.http_input mbstring.http_output とか、DB使用しているならそのデフォルトの文字コードとか、 headerで文字コード指定してないかとか、 javascript側のコールバック関数で何かやってないか? とか確認してみればどうでしょう。 $.load()だとうまくいってるのかどうか、確認しにくいので、 とりあえず、 $.ajax()の方を使って原因を探って見ては....
お礼
ありがとうございます。 ご教授いただいた方法でシンプルな状態にしてテストしてみましたら 正常に表示される状態を確認できました。 私の単純なミスで<div id="search">の部分が キーワードによってはプログラム上で表示されないようになっている事がわかりました。 ちゃんと動作はしていたのですが、それが原因で表示されていないだけでした・・・。 悩んでいたのが馬鹿らしいミスでした; 馬鹿ミスで申し訳ありません。 おかげさまで冷静に1つずつ検証する事ができ、 ありえないほど単純なミスを発見することができましたm(__)m 本当にありがとうございました。