我有一個Javascript函數將數組數組傳遞給PHP文件。我的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方面的數據。
在此先感謝
安迪
我的數組是一個對象數組,每個對象都包含一組「怪異屬性」 - 數組可能相當大,所以我只是尋找傳遞數據的最佳方式。從您的意見,也許我選擇了錯誤的方式來做到這一點。將歡迎關於如何將這麼多數據傳遞給php腳本的建議。 –
「歡迎提供關於如何......的建議」請查看提供的鏈接,因爲它們充滿了AJAX示例 – feeela