我有一个表单,您可以自动生成其他表单框,然后将它们发送到PHP脚本处理。然而,我对Javascript非常糟糕,而且我遇到了以下问题。
当填写表单时,我可以看到URL上填写的所有内容,除了用JS创建的框(每个框都有唯一的名称!)。我的猜测是JS生成的字段从表单标签中删除,但无法弄清楚如何解决这个问题。如果有人能给我指点或告诉我如何解决这个问题,我将不胜感激。为了清晰起见,我缩短了代码(如果遗漏的话请告诉我)。如果有人想知道我为什么不使用表单操作。这是因为drupal尝试将网站转发到错误的地方(如果我这样做的话(惊喜,对drupal不太好:D)
<?php
require_once('customer.php');
?>
<script type="text/javascript">
var intTextBox=0;
//FUNCTION TO ADD TEXT BOX ELEMENT
function addElement()
{
intTextBox = intTextBox + 1;
var contentID = document.getElementById('content');
var newTBDiv = document.createElement('div');
newTBDiv.setAttribute('id','strText'+intTextBox);
newTBDiv.innerHTML = "<div class='product'><tr><td>Sku/ID: "+intTextBox+": <input type='text' name='sku_" + intTextBox + "'/></div>";
contentID.appendChild(newTBDiv);
}
function removeElement()
{
if(intTextBox != 0)
{
var contentID = document.getElementById('content');
contentID.removeChild(document.getElementById('strText'+intTextBox));
intTextBox = intTextBox-1;
}
}
</script>
<table>
<form name="activate">
<div class='cu'>
<tr><td>Sku/ID (oma): <input type="text" name="sku"></td>
<td><p><a href="javascript:addElement();" >Add product</a>
<a href="javascript:removeElement();" >Remove product</a></p></td></tr>
<div id="content"></div>
</div>
<tr> <td><input type="submit" value="Submit"></td> </tr>
</form>
Customer.php
<?php
if(isset($_GET["sku_1"]))
{
echo "found it";
}
else
echo "did not find it";
?>
非常感谢任何帮助!
答案 0 :(得分:0)
您可以动态更改表单标记的网址以包含文本框值:
var textboxes = document.getElementsByTagName("input");
for (var i = 0; i < textboxes.length; i++){
var data = "?";
if (textboxes[i].type == "text") {
data += (data == "?" ? "" : "&") + textboxes[i].name + "=" + textboxes[i].value;
}
}
form.action += data;
我还没有对此进行测试,您可能需要动态添加所有元素
[UPDATE] 如果您在表单上遇到问题,可以尝试使用绝对路径,如果您还没有。