php - POST 数据中未拾取附加元素

标签 php javascript jquery

我有一个包含以下字段的订单页面:

quantity, id, name, language, publisher

最初在我的 php 页面上创建了 10 个字段,代码如下:

<form action="new_order.php" method="POST">

        <fieldset>
          <div id="inputRows"> 
            <div class="controls controls-row">
              <label class="span1">Qty</label>
              <label class="span1">ID</label>
              <label class="span5">Literature</label>
              <label class="span2">Language</label>
              <label class="span2">Publisher</label>
            </div>

            <?php 
            $i = 0;
            //make 10 initial order forms
            for($i; $i <10; $i++) {
              echo "<div class=\"controls controls-row\">\r\n";
              echo "<input class=\"span1\" type=\"text\" id=\"quantity\" name=\"order[{$i}][quantity]\">\r\n";
              echo "<input class=\"span1\" type=\"text\" id=\"id\" name=\"order[{$i}][id]\">\r\n";
              echo "<input class=\"span5\" type=\"text\" id=\"name\" name=\"order[{$i}][name]\">\r\n";

              echo "<select class=\"span2\" type=\"text\" id=\"language\" name=\"order[{$i}][language]\">\r\n";
              foreach($lang as $k=>$v) {
                echo "<option value=\"{$k}\">" . $v . "</option>\r\n";
              }
              echo "</select>\r\n";

              echo "<input class=\"span2\" type=\"text\" id=\"publisher\" name=\"order[{$i}][publisher]\">\r\n";
              echo "</div>\r\n";
              echo "\r\n";
            }
            ?>
          </div>
            <input type="button" id="addline" value="Add Another Line" >
            <br /><br /><br />
            <hr />
            <button type="submit" name="submit" class="btn btn-primary" value="order">Add Order</button>
            <button type="submit" name="submit" class="btn" value="cancel">Cancel</button>
          </fieldset>
      </form>

一切都很好。表格加载良好。所有选项都很好。我检查了源代码。

现在,我在顶部有一些 jQuery,它可以让我添加另一个字段。 我已将其设置为插入具有这些相同字段的整行,但为了简单起见,让我们只执行一个文本字段:

$(function() {

  $('#addline').on('click', function() {
    nInput = '<input type="text" name"text1" >';
    $('#inputRows').append(nInput);
  });
});

它添加了行就好了。没问题。 当我将页面提交给自身时,原来的 10 个数组被很好地拾取,但新字段没有通过。

我正在研究 Stack 和其他网站,我在某处读到的一些内容说,发生这种情况是因为表单已经加载,因此当您添加另一个输入字段时,它不会作为表单数据的一部分包含在内。这是正在发生的事情吗?如果是的话,还有其他方法吗?

这是否与我使用 .on() 函数与 .click() 函数有关?或者因为它运行在 $('document').ready() 处?一切确实加载之后?

编辑: 这是它提交到的 php 脚本:

<?php
  require_once("../../includes/initialize.php");

  if(!isset($_SESSION['user_id'])) {
    redirect("login.php");
  }

  if(isset($_POST['submit']) && $_POST['submit' == 'order']) {
    include("html/neworder.html.php");
  }

这里是 print_r($_POST),它是从包含的 neworder.html.php 文件中调用的:

Array
(
    [order] => Array
        (
            [0] => Array
                (
                    [quantity] => 
                    [id] => 
                    [name] => 
                    [language] => en
                    [publisher] => 
                )

            [1] => Array
                (
                    [quantity] => 
                    [id] => 
                    [name] => 
                    [language] => en
                    [publisher] => 
                )

   //etc... 

            [9] => Array
                (
                    [quantity] => 
                    [id] => 
                    [name] => 
                    [language] => en
                    [publisher] => 
                )

        )

    [submit] => order
)

最佳答案

我认为您在 php 中使用 $_POST['submit' == 'order'] 并且 $_POST['submit'] == 'order'

又一个捂脸?

关于php - POST 数据中未拾取附加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17184596/

相关文章:

php - 我可以在不抛出异常的情况下实例化异常吗?

php - mysql 查询返回对象,但我需要字符串

javascript - 单击<a>标签时如何防止页面刷新?

javascript - 如何使活泼的 Accordion 看起来像一棵树

javascript - 使用 jquery 脚本的自定义函数配置选项

php - HTML 表单输入 datetime-local 在输入中包含秒数?

javascript - 如何将变量从 html View 传递到 Angular Controller 以按范围访问

javascript - 将 html 加载到 div、菜单、开关

javascript - 使用 jquery 检查 Internet 连接

php - Httpful:无法将响应解析为 JSON