0

私は、landing.php と test.php の 2 つのファイルを持っています。Landing.php には、post メソッドを使用して ajax 経由で test.php に送信されるフォームがあります。ajax 呼び出しが成功すると、ブラウザーは test.php をロードしますが、その時点で問題が発生しています。test.php に送信された投稿データの値を表示しようとして、何が間違っているのかわかりません。

以下は、landing.php からの ajax 呼び出しです。Firebug の投稿データを見て、これが正しく機能していることはかなり確信しています。

$('#searchForm').submit(function(e) {
    e.preventDefault();
    var data1 = $('#checkBoxDiv input').serialize() + '&' + 'barcodeID=' + $('#barcodeID').val();
    $.ajax({
        url: 'test.php',
        data: data1,
        type: 'POST',
        success: function() {
            window.location.href = "test.php";
        }
    });  
});  

test.php の内容は次のとおりです。

<?php

$bar = $_POST['barcodeID'];

echo "<html>";
echo "<body>";
echo "<p>*" . $bar . "*</p>";
echo "</body>";
echo "</html>";
?>

from test.phpの行からアスタリスクを削除すると<p>、ブラウザで test.php に到達したときに、完全に空白の画面が表示されます。ただし、そこにあると、画面に「**」が表示されます。ただし、最も紛らわしい部分は、

echo $bar;

test.php では$bar、投稿データ ビューアーの Firebug の応答タブに (00-00102 - 本来あるべき姿) の値が表示されます。

いくつかの調査の後、URL バーにクエリ文字列を表示したくない場合や、送信するデータが大量にある場合 (これは私の場合は、全部で 500 ~ 600 文字になるでしょう)。私は他のスタックオーバーフローの投稿や記事を見て、推奨されたものを複製しようとしましたが、まだこれを正しく行うことができません.

私は何か完全に間違っているのでしょうか、それとも意図されていない方法でこれらのメソッドを使用しようとしていますか?

4

5 に答える 5

1

変数を POST リクエストとして test.php ファイルに渡します。これは、test.php ファイルがそのデータを取得し、それに基づいて動作することを意味します。次に、そのリクエストが正常に完了した後、変数を渡さずに test.php にリダイレクトしています。

本当にフォームを送信したい場合 (それに伴うリダイレクトを使用)、html を使用して送信します。

<form action="test.php" method="post">
    <input type="text" name="barcodeID" />
</form>

リダイレクトが必要ない場合は、他の人が提案したことを実行し、代わりに同じページに出力を表示します (someDivは、test.php からの応答を表示する html 要素です)。

$('#searchForm').submit(function(e) {
    e.preventDefault();
    var data = $('#checkBoxDiv input').serialize() + '&' + 'barcodeID=' + $('#barcodeID').val();

    $.post('test.php', data, function(response) {
        $('someDiv').html(response);
    });
});

JavaScript とリダイレクトを使用して行う必要がある場合は、非表示のダミー フォームをページに追加して送信します。

$('<form action="test.php" method="post">' +
    '<input type="hidden" name="barcodeID" value="123456789" />' +
    '</form>')
    .appendTo('body')
    .submit();
于 2013-08-13T21:27:12.427 に答える