php - 如何在 PHP 中检索从 Javascript 传递的数据数组?

标签 php javascript

我有一个 Javascript 函数可以将数据数组传递给 PHP 文件。我的 Javascript 动态创建一个表单,如下所示

function SaveFileToDisk(filename)
{
    var ssForm = document.createElement("form");
    ssForm.method="post" ;
    ssForm.action = "saveScenario.php" ;
    ssForm.target = "hiddenSaveScenarioStatusFrame";

    for (var i = 0; i < ScriptSteps.length; i++)
    {
        var ssInput = document.createElement("input");
        ssInput.setAttribute("filename", filename);
        ssInput.setAttribute("timestamp", ScriptSteps[i].timestamp);
        ssInput.setAttribute("lhsName", ScriptSteps[i].lhsName);
        ssInput.setAttribute("lhsPort", ScriptSteps[i].lhsPort);
        ssInput.setAttribute("lhsBandwidth", ScriptSteps[i].lhsBandwidth);
        ssInput.setAttribute("lhsDelayMin", ScriptSteps[i].lhsDelayMin);
        ssInput.setAttribute("lhsDelayMax", ScriptSteps[i].lhsDelayMax);
        ssInput.setAttribute("lhsDropLoss", ScriptSteps[i].lhsDropLoss);
        ssInput.setAttribute("lhsFilters", ScriptSteps[i].lhsFilters);
        ssInput.setAttribute("lhsDefaultFilter", ScriptSteps[i].lhsDefaultFilter);
        ssInput.setAttribute("rhsName", ScriptSteps[i].rhsName);
        ssInput.setAttribute("rhsPort", ScriptSteps[i].rhsPort);
        ssInput.setAttribute("rhsBandwidth", ScriptSteps[i].rhsBandwidth);
        ssInput.setAttribute("rhsDelayMin", ScriptSteps[i].rhsDelayMin);
        ssInput.setAttribute("rhsDelayMax", ScriptSteps[i].rhsDelayMax);
        ssInput.setAttribute("rhsDropLoss", ScriptSteps[i].rhsDropLoss);
        ssInput.setAttribute("rhsFilters", ScriptSteps[i].rhsFilters);
        ssInput.setAttribute("rhsDefaultFilter", ScriptSteps[i].rhsDefaultFilter);
        ssForm.appendChild(ssInput) ;
    }
    document.body.appendChild(ssForm) ;
    ssForm.submit() ;
    document.body.removeChild(ssForm) ; 
}

但是当我编写我的 PHP 脚本时,我期望在 $_POST 变量中找到数组,并认为我会得到包含上述字段和相应数据的数组的每个元素。当我查看 PHP 脚本中 $_POST 数组的大小时,它显示为零。我做错了什么或者我使用错误的方法来做这种事情。

顺便说一句,我真的只需要传递一次文件名,但我认为最简单的方法是将它与数组的每个元素一起传递。有没有更好的方法让文件名传递一次,其余字段为每个“步骤”传递?在网上搜索有关将数据数组从 Javascript 传递到 PHP 的想法 - 似乎有很多方法,其中一种是我尝试过的方法,但没有解释在 PHP 端检索数据。

提前致谢

安迪

最佳答案

事实上,您只是创建了一个输入字段并为其分配了一堆奇怪的属性(例如“lhsName”,那是什么?它不是 HTML)。请查看生成的 HTML。每个变量需要一个输入。

另一方面,整个方法很奇怪。为什么不调用脚本并将所有变量作为 JSON 编码数据发布?

另见

关于php - 如何在 PHP 中检索从 Javascript 传递的数据数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910482/

相关文章:

php - 在 php 中创建时间戳并替换旧日期

javascript - 使用 xmlhttprequest 对象在两个文本框中显示值?

javascript - Titanium SDK 的奇怪行为 - 选项卡必须只有一个子选项

javascript - 如何使用 webpack 丑化 javascript

javascript - 通过 HTML 对象标签的交互式 SVG

javascript - 如何防止 javascript 赋值创建自己的属性

php - 我怎么知道哪个订单是paypal付款的?

PHP 动态显示进度消息

php - 根据给定的排名和顺序显示mysql记录

javascript - 如何仅在reactjs中向单击的元素添加类?