0

こんにちは、JavaScript を使用して 2 つの文字列を別の PHP ページに投稿しようとしています (文字列は動的で、実行時に JS ルーチンによって作成されます)。

以下のコードを使用して新しいウィンドウを開き、そのページのコード内で投稿されたデータを取得したい

次のコードを使用して投稿します

var title_string = "title1|title2";
var barcode_string = "barcode1|barcode2";
var path="create_labels.php";
var method = "post";
var params = "titles=" + title_string + "&barcodes=" + barcode_string;
    // The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
form.setAttribute("target", "_blank");

for(var key in params) {
    if(params.hasOwnProperty(key)) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);

        form.appendChild(hiddenField);
     }
}

document.body.appendChild(form);
form.submit();

簡単にするために、当面の間、2 つの文字列 (タイトルとバーコード) を作成しました。これを form.submit の投稿で渡します。

少し確信が持てないのは、パラメーターの作成です。これは正しいですか?コードは新しいウィンドウを開きますが、何らかの理由で投稿されたデータを取得できないため、投稿が間違っていると思います。

4

2 に答える 2

0

そのフォームの出力を見たことがありますか? パラメータ文字列の各文字に対して隠しフィールドを作成しています。よろしいですか?

于 2012-04-05T19:32:32.600 に答える
0

paramsオブジェクトではなく文字列なので、キーはありません。文字列の各文字を処理すると、次のようになります。

<input type="hidden" name="0" value="t">
<input type="hidden" name="1" value="i">
<input type="hidden" name="2" value="t">
<input type="hidden" name="3" value="l">
<input type="hidden" name="4" value="e">
<input type="hidden" name="5" value="s">
<input type="hidden" name="6" value="=">
<input type="hidden" name="7" value="t">
<input type="hidden" name="8" value="i">
<input type="hidden" name="9" value="t">

...など...

変換するには、このコードが必要になる場合があります。

于 2012-04-05T19:33:07.420 に答える