javascript post form.submit();

时间:2012-04-05 19:20:34

标签: javascript forms post submit

您好我试图使用javascript将两个字符串发布到另一个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();

为简单起见,我刚刚创建了两个字符串(标题和条形码),我将通过form.submit上的帖子传递

我不确定的是创造了参数,我这样做是否正确?代码确实打开了一个新窗口,但无论出于何种原因我都无法检索发布的数据,我认为我发布的错误。

2 个答案:

答案 0 :(得分:0)

你看过那张表格的输出了吗?您正在为param字符串的每个char创建隐藏字段。你确定要这么做吗?

答案 1 :(得分: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">

...等......

您可能需要bit of code进行转换。