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 タグがありますか? このような...

<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 に答える