-2

私はこの問題を抱えており、何が原因なのかわかりません。www.something.tld/index.html から ajax スクリプトを ajax するためにデータをロードすると、問題ありません。しかし、最初にdbからデータを取得し、次にこのデータをエコーするscript.phpからデータをロードすると、私のajaxはエラーで終了します。しかし、データ出力は同じです!どうしたの?

例: index.html の出力は "XXX" script.php の出力は "XXX" ですが、私のスクリプトでは次のようにデータを生成します。

echo $data[0]->var;

なぜこれが起こるのか分かりますか?これは、db からデータを取得してからエコー出力したときに発生します。

Internet Explorer は次のように述べています: ttm/canvas.1.03.jgz の構文エラー 281 行目、文字 163 ここに jgz のリンクがあります http://www.freefilehosting.net/canvas103

PHP ajax で anz 関数を使用すると、出力が正しく解析されないことがわかりました。これは問題なく解析されます:

$from ='05/17/2012 10:15:00';
  $to ='05/17/2012 10:30:00';
  $day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';

これは正しく解析されません:

$from= preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_from);
$to  = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
$day = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->day);
$from ='05/17/2012 10:15:00';
  $to ='05/17/2012 10:30:00';
  $day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
4

1 に答える 1

0

使用する場合json_encode()(想定どおり)、PHPがすべてのエンコーディングの癖を処理します。印刷できない文字や0x7Fを超えるものをエスケープするなど。

echo json_encode(Array(
    "dtstart"=>$from,
    "dtend"=>$to,
    "day"=>$day
));

ファイルのエンコーディングによっては、utf8_encode()最初に値を実行する必要がある場合がありますが、それは最初にテストしてから試す必要があります。

于 2012-05-17T15:57:45.347 に答える