0

我有一个表单,其中包含设置如下的行:

<div class="row unit" onmouseover="this.style.background = '#eeeeee';" onmouseout="this.style.background = 'white';" onclick="if(event.srcElement.nodeName != 'INPUT' && event.srcElement.nodeName != 'SELECT' && event.srcElement.nodeName != 'TEXTAREA'){goToByScroll(event.srcElement,-160);}">
            <div class="col">
                <div class="select">
                    <input type="checkbox" id="select<?php echo $i; ?>" name="select<?php echo $i; ?>">
                </div>

            </div>
            <div class="col name">
                <p><input class="searchable" type="text" id="name<?php echo $i; ?>" name="name<?php echo $i; ?>" value="<?php echo $name; ?>"></p>
                <p>Badge ID: <input class="searchable" type="text" id="badge<?php echo $i; ?>" name="badge<?php echo $i; ?>" value="<?php echo $badge; ?>" style="width: 50px;"></p>
            </div>
            <div class="col phone">
                <p>Work: <input class="searchable" type="text" id="phone<?php echo $i; ?>" name="phone<?php echo $i; ?>" value="<?php echo $phone; ?>"></p>
                <p>Cell: <input class="searchable" type="text" id="cell<?php echo $i; ?>" name="cell<?php echo $i; ?>" value="<?php echo $cell; ?>"></p>
                <p>Home: <input class="searchable" type="text" id="home<?php echo $i; ?>" name="home<?php echo $i; ?>" value="<?php echo $home; ?>"></p>
            </div>
            <div class="col email">
                <p>Work: <input class="searchable" type="text" id="email<?php echo $i; ?>" name="email<?php echo $i; ?>" value="<?php echo $email; ?>"></p>
                <p>Personal: <input class="searchable" type="text" id="perEmail<?php echo $i; ?>" name="perEmail<?php echo $i; ?>" value="<?php echo $perEmail; ?>"></p>
            </div>
            <div class="col file">
                <p class="removeFile"><input type="text" id="filename<?php echo $i; ?>" name="filename<?php echo $i; ?>" class="file" value="<?php echo $filename; ?>" readonly>
                Remove: <input type="checkbox" id="removeFile<?php echo $i; ?>" name="removeFile<?php echo $i; ?>"></p>
                <input type="file" id="file<?php echo $i; ?>" name="file<?php echo $i; ?>" onchange="myForm.elements['filename<?php echo $i; ?>'].value=myForm.elements['file<?php echo $i; ?>'].value;">
            </div>
</div>

这些行使用增加名称的 javascript 函数重复:

function addTableRow(table){
    for(i=0; i<myForm.elements['entriesNum'].value; i++){
        var $tr = $(table).find(".row:last").clone();
        $tr.find("input,select,textarea").attr("name", function(){
          var parts = this.id.match(/(\D+)(\d+)$/);
          return parts[1] + ++parts[2];
        }).attr("id", function(){
          var parts = this.id.match(/(\D+)(\d+)$/);
          return parts[1] + ++parts[2];
        });
        $(table).find(".row:last").after($tr);

        $tr.find('.fileElements').remove();
        $tr.find('input[type!="radio"], textarea').removeAttr("value");
        $tr.find('input').removeAttr("checked");
        $tr.find('select option:first-child').attr("selected", true);
        $tr.find('input[type!="radio"]').removeAttr("disabled");
        $tr.find('input[type="radio"]').attr("disabled", "disabled");
        $tr.find('.error').hide();
    }
}

在行数高于 111 之前,这非常有效。此时,当我提交时,无论我添加多少行,数组中都不会包含更多数据。我可以通过使用 print_r($_REQUEST); 推断出这一点。我已经编辑了我的 php.ini 并将所有最大值设置为高得离谱,但仍然没有变化。

4

1 回答 1

0

每当我遇到 javascript 创建的表单元素没有出现在 POST 中的问题时,它总是与我构建 FORM 标签的方式有关。

要寻找的东西...

您的 FORM 标签是否正确关闭?

您的 FORM 在 DOM 中的启动和关闭级别是否相同?例如,你不想这样做......

<form method='post'>
<div>
  <!--lots of stuff-->
  </form>
</div>

你会想要这个......

<form method='post'>
  <div>
    <!--lots of stuff-->
  </div>
</form>

您是否有另一个 FORM 标签在您实际使用的标签之前已打开但未关闭?像这样...

<form method='get'>
   <!--some kind of form about something else-->

<form method='post'>
   <!--the data you're currently focused on-->
</form>
于 2012-10-23T13:53:56.857 回答