将带有表单(GET)的javascript生成的texbox值发送到PHP脚本

时间:2014-09-01 11:57:38

标签: javascript php html

我有一个表单,您可以自动生成其他表单框,然后将它们发送到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";

    ?>

非常感谢任何帮助!

1 个答案:

答案 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] 如果您在表单上遇到问题,可以尝试使用绝对路径,如果您还没有。