0

DB選択後にJSON文字列を返すはずのphpスクリプトを呼び出すjQueryを使用して書かれたajaxスクリプトがあります。ただし、php スクリプトは、JSON 文字列とそれに続く html タグの両方を返します。ページは他に何も出力しません (スクリプト内の唯一の印刷コマンドが示されています)。そのタグが追加されている場所が見つかりません。私のサーバー(PHP5.4を実行)は、ファイルの先頭と末尾に追加するように設定されていますが、それをオーバーライドしています。回避策として、exit() を使用して他の出力を中止しています。JSON は適切に構築されており、php スクリプトに直接アクセスして文字列だけを確認できますが、適切な html タグと body タグで自動的にラップされます。exit() が呼び出されると、JSON を適切に使用できます。ただし、よりクリーンなコードに関心があるため、将来の開発のためにこの問題を解決したいと考えています。

jq.info.js スニペット:

function getCharInfo(chars_id){
$.ajax('/editor/jquery_info.php',{
    data: {'chars_id': chars_id, 'qtype':'charsInfo' },
    dataType: 'json',
    cache: false,

jquery_info.php スニペット:

foreach($chobj->char as $key=>$char){
        $charInfo[$key] = parse_syn($char, 1);
    }
    $charInfo = json_encode($charInfo, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
    print($charInfo);
    exit;

parse_syn 関数は、html エンティティを UTF-8 に相当するもの (つまり、'&rquo​​;' を '、'--' を '—' など) に置き換えるだけです。PHPのセットアップで調べる洞察や設定をいただければ幸いです。

4

0 に答える 0