PHP
2012.09.12
jQueryのget関数を使ってPHPをリクエストし、
結果を戻り値として受け取る・・だけだったのですが、
勘違いをしていてひどく苦戦したのでメモします。
JS側は
$.get("test.php", function(data){
alert(data);
});
というように、
PHPを実行してその結果を受けて
コールバック関数で表示させるというものです。
で、肝心のPHP側ですが、
処理の結果を return で返そうとしていて・・
(そもそも関数内じゃないので return は無意味ですね)
戻り値は XMLHttpRequestオブジェクトなので、
単純に print で出力してあげれば受け取ることができました。
結果を戻り値として受け取る・・だけだったのですが、
勘違いをしていてひどく苦戦したのでメモします。
JS側は
$.get("test.php", function(data){
alert(data);
});
というように、
PHPを実行してその結果を受けて
コールバック関数で表示させるというものです。
で、肝心のPHP側ですが、
処理の結果を return で返そうとしていて・・
(そもそも関数内じゃないので return は無意味ですね)
戻り値は XMLHttpRequestオブジェクトなので、
単純に print で出力してあげれば受け取ることができました。
2008.10.23
PHPでラジオボタンを作ったのですが、文字化けに悩まされてしまいました。
結局は、PHPの仕組みをよく理解できていなかっただけなのですが・・
PHPではフォームから情報を受け取ると、文字コードをEUC-JPに変換して処理します。
これをそのまま表示してしまうと、文字化けが起こってしまいます。
HTMLはShift_JISかUTF-8の場合が多いですし。
それでどうするかというと、データを表示する前に文字コードを変えてやります。
$str = mb_convert_encoding($str, "UTF-8", "EUC-JP");
こんな感じです。
たったこれだけ・・
これのどこに引っかかってたんだ、と自分でも少し思いましたが。
実はPHPの設定で、ソースを保存するときのコードとブラウザへ出力するときのコードが設定できて、それも合わせていろいろ試していたのが問題だったようです。
PHPでの処理はEUC-JPで行われるわけですから、設定は
「ソースをEUC-JPで保存し、ブラウザへEUC-JPで出力する」
としておいて、
ブラウザで表示させるときに任意の文字コードに変換する、というのが一番安定するようです。
おっしーでした。
結局は、PHPの仕組みをよく理解できていなかっただけなのですが・・
PHPではフォームから情報を受け取ると、文字コードをEUC-JPに変換して処理します。
これをそのまま表示してしまうと、文字化けが起こってしまいます。
HTMLはShift_JISかUTF-8の場合が多いですし。
それでどうするかというと、データを表示する前に文字コードを変えてやります。
$str = mb_convert_encoding($str, "UTF-8", "EUC-JP");
こんな感じです。
たったこれだけ・・
これのどこに引っかかってたんだ、と自分でも少し思いましたが。
実はPHPの設定で、ソースを保存するときのコードとブラウザへ出力するときのコードが設定できて、それも合わせていろいろ試していたのが問題だったようです。
PHPでの処理はEUC-JPで行われるわけですから、設定は
「ソースをEUC-JPで保存し、ブラウザへEUC-JPで出力する」
としておいて、
ブラウザで表示させるときに任意の文字コードに変換する、というのが一番安定するようです。
おっしーでした。