1

私は次のようなフォームを持っています:

<label for="fullpath"><span class="required">*Full Path of folder to change access:</span></label>
            <input name="fullpath" id="it10" type="text" size="50" maxlength="50" />
            <br />
            <small>Example: g:\A\Folder or j:\Your\Folder</small><br />
            <div class="bgdiff">
              <label for="userpermissiongroup">User Permission Group to be changed:</label>
              <input name="userpermissiongroup" type="text" id="it11" size="50" maxlength="50" />
              <small>If Known...</small></div>
            <br />
            <label for="addreadaccess">Additional users requiring read access:</label>
            <input name="addreadaccess" type="text" id="it12" size="15" maxlength="15" />
            <br />
            <small>AD Username</small><br />
            <div class="bgdiff">
              <label for="addauthoraccess">Additional users requiring author access:</label>
              <input name="addauthoraccess" type="text" id="it13" size="12" maxlength="12" />
              <br />
              <small>AD Username</small></div>
            <br />
            <label for="removeaccess">Users to be removed from access:</label>
            <input name="removeaccess" type="text" id="it14" size="12" maxlength="12" />
            <br />
            <small>AD Username</small><br />
            <div class="bgdiff">
              <label for="supervisor"><span class="required">*Data Steward, Program Manager, Project Lead, or Supervisor who can authorize access changes:</span></label>
              <input name="supervisor" type="text" id="it15" size="30" maxlength="30" />
              <br />
              <small>AD Username</small></div>
            <br/>
            <label for="phoneapprover"><span class="required">*Phone number of approving official: </span></label>
            <input name="phoneapprover" type="text" id="it16" size="30" maxlength="30" />
            <br />
            <small>999-999-9999</small><br />
          </fieldset>
        </div>

送信する前に、このフォームにこの情報をすべて1倍以上追加するオプションをユーザーに提供したいと思います。(最大10倍と言う)私は頭の中でいくつかのアイデアを実行しました。1は、Javascriptを使用して新しいフィールドを作成し、それを何らかの方法でphpスクリプトで解析しています。2は、コード内の上記のフォームと同じように10個のコードスニップを配置し、ユーザーが[追加]をクリックするまで非表示にします。

単純な$_REQUESTphpスクリプトを考えてこの情報を送信するため、各入力は一意である必要があります。1つの入力とforeachループでこれを行う方法は理解していますが、このように大量の入力やラベルなどで機能させる方法がわかりません...

<?php
foreach($_POST['newdata'] as $value) {
echo "$value <br />";
}
?>

誰かがこれについて行くための最良の方法についていくつかの提案がありますか?JSを介して彼のフォームを追加することが最善のアイデアかどうかはわかりません。そのため、非表示のdivから新しい情報を表示するだけで、より速く簡単に思えます...

4

2 に答える 2

3

フォームのフィールド名に追加[]すると、PHPはそれらのフィールドを取得し、配列に変換します。

<input type="text" name="field[]" value="first" />
<input type="text" name="field[]" value="second" />
<input type="text" name="field[]" value="third" />

次の$_POST構造を生成します。

$_POST = array(
    'field' => array(
         0 => 'first',
         1 => 'second',
         2 => 'third',
    )
);

別の方法は、新しいブロックごとに既存のフィールドセットを複製するときに、各フィールド名に増分番号を追加することです。これにより、ブロックが適切に分離され、関連するフィールドに同じ数値タグが付けられることが保証されますが、処理が複雑になります。

于 2012-05-26T04:25:30.760 に答える
0

それほど難しいことではありません。主なアイデアは、反復ごとにIDを使用することです。そのため、入力には一意の名前が付けられ、問題なく処理されます。

for ($i=0;$i<10;$i++){
   echo "<input name='removeaccess' type='text' id='it14_{$i}' size='12' maxlength='12' />";
}

したがって、ラベルを使用して現在の入力セットのコードを取得し、各円の反復で形成されるIDを入力名に追加します。とに注意して'ください"

于 2012-05-26T04:24:29.340 に答える