无法POST使用javascript创建的动态表单元素
Unable to POST dynamic form elements created using javascript
我试图POST使用javascript添加的动态表单元素,但无法这样做。当我添加元素时,元素会显示出来,但在test.php页面上看不到任何东西。
我一直在试图找出这个问题,但没有成功。我还使用Firebug检查DOM元素,但它看起来很好。请帮助下面是我的代码:<html>
<head>
<script type="text/javascript">
function add() {
//Create an input type dynamically.
var element1 = document.createElement("input");
var element2 = document.createElement("input");
var newdiv = document.createElement("button");
var space = document.createElement("div");
//Assign different attributes to the element.
element1.setAttribute("type", "text");
element2.setAttribute("type", "text");
//newdiv.setAttribute("type", "button");
//element.setAttribute("value", type);
//element.setAttribute("name", type);
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1)+ 2;
numi.value = num;
var area = document.getElementById('area');
var divIdName1 = 'name'+num;
var divIdName2 = 'amount'+num;
var divIdName3 = 'button'+num;
element1.setAttribute('id',divIdName1);
element2.setAttribute('id',divIdName2);
newdiv.setAttribute('id',divIdName3);
element1.setAttribute('value',divIdName1);
element2.setAttribute('value',divIdName2);
newdiv.setAttribute('value','harsh');
// element2.setAttribute('id', );
//Append the element in page (in span).
space.innerHTML='<br />';
newdiv.onclick = function() {
//document.write(divIdName1);
var olddiv = document.getElementById(divIdName1);
area.removeChild(olddiv);
olddiv = document.getElementById(divIdName2);
area.removeChild(olddiv);
olddiv = document.getElementById(divIdName3);
area.removeChild(olddiv);
area.removeChild(space);
}
area.appendChild(element1);
area.appendChild(element2);
area.appendChild(newdiv);
area.appendChild(space);
}
</script>
</head>
<body>
<form id="frmMain" name="frmMain" method=get action=test.php>
<input type="hidden" value="0" id="theValue" />
<div id="area">
<input type="button" value="+" onclick="add()"/>
<br />
<br />
</div>
<input type=submit value=submit>
</form>
</body>
</html>
PHP code : test.php
<?
echo "<h1>Form posted with Ajax</h1>";
echo "<h4>POST variables</h4>";
print_r($_POST);
foreach($_POST as $key=>$value){
echo "yes";
if(is_array($value)){
for($no=0;$no<count($value);$no++){
echo "<b>".$key."[$no]</b>: ".$value[$no]."<br>";
}
}else{
echo "<b>".$key."</b>: ".$value."<br>";
}
}
echo "<h4>GET variables:</h4>";
foreach($_GET as $key=>$value){
if(is_array($value)){
for($no=0;$no<count($value);$no++){
echo "<b>".$key."[$no]</b>: ".$value[$no]."<br>";
}
}else{
echo "<b>".$key."</b>: ".$value."<br>";
}
}
?>
看起来你已经给他们分配了value
属性和id
属性,但你没有给他们name
属性,这是浏览器需要的,以便在$_POST
中出现在PHP中:
// id attrs
element1.setAttribute('id',divIdName1);
element2.setAttribute('id',divIdName2);
newdiv.setAttribute('id',divIdName3);
// Value attrs
element1.setAttribute('value',divIdName1);
element2.setAttribute('value',divIdName2);
newdiv.setAttribute('value','harsh');
// Don't forget name attrs
element1.setAttribute('name','somename1');
element2.setAttribute('name','somename2');
newdiv.setAttribute('name','someval');
相关文章:
- jQuery动态表单显示在select选项上
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- Small Javascript从动态表单中删除多个元素的问题
- Php,Javascript-动态表单id's和动态验证
- 在动态表单的可见部分中,如何使用javascript生成所需的某些字段
- AngularJS中的动态表单验证 - 是否有更好的解决方案/方法
- 如何添加动态表单元素但保留其值(JS)
- jquery在动态表单输入上验证插件不起作用
- Angularjs在js中绑定动态表单构建
- 正在使用ng消息验证动态表单
- 将动态表单元素限制为最多10个记录
- onchange使用PHP和jQuery对动态表单输入进行计算
- 如何将动态表单保存到数据库/编辑回表单
- 生成动态表单输入字段,并在angularJS中以数组形式收集字段数据
- 基于select选项的javascript动态表单生成
- 具有大型动态表单的主干js
- 如何在Struts1中映射和读取我的动态表单条目
- 如何在java框架(JSF)中基于URL的json响应生成动态表单
- Handlebar.js模板,使用Undercore.js-Zendesk应用程序进行动态表单输入
- 如何针对生成的所有动态表单的Input元素