0

これを行うphpファイルがありました:

$recresults = array('dupes' => $result, 'total' => $number2);
header('Content-type: application/json');
echo json_encode($recresults);

次に、ファイルを次のように変更しました。

$recresults = array('dupes' => $result, 'total' => $number2, 'thefield' => "WWW");
header('Content-type: application/json');
echo json_encode($recresults);

しかし、Google 開発ツールのネットワーク タブを確認すると、最後に追加した配列要素が返されていないことがわかりましthefieldた。JavaScript でその要素の変数を使用しようとすると、 undefined になりdata.thefieldます。

したがって、変更がサーバーによって認識されているかどうかを確認するために、コードを次のように変更してみました。

$recresults = array('dupes' => $result, 'total' => $number2, 'thefield' => "WWW");
echo ("WTF SERVER?");

jsonまた、ajax 呼び出しのタイプを削除しました。チェックした後、サーバーがphpファイルへの変更を認識していないことは正しかった. 戻りコードはjson、最初のコード セットからのもののままでした。PHPファイルの名前を変更するという古いトリックを試しました。動作しませんでした。サーバーの再起動を試みました。サイコロはありません。

私に何ができる?サーバーはエラーを返しません。

$.post(PROCESSORFILE, {"task": "csv_dedupe", "file_name": file_name, "column_dedupe":                                    elem}, function(data) {
                $("#message").replaceWith('<div id="message" class="nNote nSuccess hideit"><p><strong>CSV Deduped! </strong><span class="badge badge-important">' + data.thefield + '</span> duplicate<span class="label label-info"> ' + data.dupes+ '</span> found</p></div>')
            });

json_encode を使用して php ファイルから内容を返すときに、上記の JS$.post()を typeに変更しjsonます。

4

1 に答える 1

1

変数の内容に応じて に置き換えて、次のことを試してください?&PROCESSORFILE

var cacheBuster = new Date().getTime() + Math.round(Math.random()*100000);
$.post(PROCESSORFILE + "?t=" + cacheBuster, {"task": "csv_dedupe", "file_name": file_name, "column_dedupe": elem}, function(data) {
    $("#message").replaceWith('<div id="message" class="nNote nSuccess hideit"><p><strong>CSV Deduped! </strong><span class="badge badge-important">' + data.thefield + '</span> duplicate<span class="label label-info"> ' + data.dupes+ '</span> found</p></div>')
});

これは、php ページの新しいコピーが確実に取得されるようにするためのキャッシュバスター コードです。

于 2012-09-11T09:52:23.580 に答える