[英]JS-created form elements not submitting
我有一個帶有“常規”表單元素的表單,然后還有通過單擊javascript按鈕創建的表單元素。 稱呼為:
<script src="incld/addClass.js" language="Javascript" type="text/javascript">
</script>
<input type="button" value="Add a Class" onClick="addInput('dynamicInput');" class="add-class-btn">
但是,當我查看$ _POST輸出時,這些元素尚未提交。
這是JS:
var counter = 1;
var limit = 25;
function addInput(divName){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
} else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "Class " + (counter + 1) + " <p><label for=\"class_name\">Class Name </label><input type=\"text\" name=\"class[" + (counter + 1) + "][name]\" id=\"class[" + (counter + 1) + "][name]\" class=\"text-fld\" /></p><p><label for=\"class_grade_level\">Grade Level </label><input type=\"text\" name=\"class[" + (counter + 1) + "][grade_level]\" id=\"class[" + (counter + 1) + "][grade_level]\" class=\"text-fld\" /></p><p><label for=\"class_subject\">Subject </label><input type=\"text\" name=\"class[" + (counter + 1) + "][subject]\" id=\"class[" + (counter + 1) + "][subject]\" class=\"text-fld\" /></p>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
編輯:“常規”表單元素與JS創建的元素位於不同的div標簽中。 也許這很重要嗎?
Edit2:完整(經過編輯但很丑陋)的源代碼可以在這里找到: http : //pastebin.com/y5QJU4NN
我能夠復制您的代碼並創建無需更改即可提交的表單。 但是,在提交表單之后,在接收方,我采用了類似於以下的POST
結構:
<?php
var_dump($_POST);
?>
array(1) {
["class"]=> array(1) {
[2]=> array(3) {
["name"]=> string(5) "test1"
["grade_level"]=> string(5) "test2"
["subject"]=> string(5) "test3"
}
}
}
因此,看起來您上面發布的代碼有效。 檢查以確保您正在處理程序腳本的POST
中檢查正確的數組級別。
編輯
看來PHP不喜歡您將數組索引用作字段名稱。 我確定您可以指定一個字段名稱,例如class[]
,PHP將捕獲所有具有class[]
字段名稱的傳入字段作為數組,但是我不確定您是否可以指定一個字段名稱,例如class[1][name]
。 我將您的JS中的字段名稱更改為:
<input type=\"text\" name=\"class-" + (counter + 1) + "-name\"
id=\"class[" + (counter + 1) + "][name]\" class=\"text-fld\" />
提交后將其插入POST就好了。 嘗試一下,看看是否可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.