0

嗨,我正在尝试使用 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 上的帖子传递

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

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">

... ETC ...

您可能需要这段代码来转换它。

于 2012-04-05T19:33:07.420 回答