1

私は深刻なジレンマに直面しており、これがどのように可能になるのか疑問に思っています。codeigniter フレームワークに組み込まれたフォームがあります。フォームの最後には入力タグがあり、数値を取り、最後の入力タグの値として入力タグの正確な行を含む新しいフォームを追加します。私はjavascriptを使用してこれを行いました、コードは

$('#formName9').on('change', function() {
       var selected = $(this).val();
       $('#subForm').empty();
       $("#subForm").append('<table border="" style="border:none; background:#f2f2f1; margin-bottom:10px; border-collapse: collapse; margin-top: 25px; box-shadow: 9px 4px 8px rgba(50, 50, 50, 0.75);" cellspacing="0" cellpadding="0">            <tr>              <td style="text-align: center; width: 30px; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/icon_house.png" ></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center; width: 200px; border-width: 0px;"><strong>Unit Name</strong></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center; width: 250px; border-width: 0px;" ><strong>Owner Name</strong></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center;width: 150px; border-width: 0px;"><strong>Owner Salutation</strong></td> </tr> </table>');
       for (var i=1; i<=selected; i++) {
           $('#subForm').append('<div style="float: left; padding-left: 13px; padding-right: 12px; padding-top: 7px; margin-top: 0px;">'+i+'</div><input type="text" name="unitName" id="unitName'+i+'" style="width:189px;" required /><input type="text" name="ownerName'+i+'" id="ownerName'+i+'" style="width:241px;" /><input type="text" name="salutation'+i+'" id="salutation'+i+'" style="width:137px;" /><br />');
       }
    });

ループに従って、追加されたすべてのタグに異なる命名規則を使用したことがわかります。

PHP[SERVER]がさらに作業を行うために、これらの値を投稿する必要がありますが、これらの動的な値を投稿するにはどうすればよいですか? 私は次のことを試みましたが、これはローカルサーバーをハングさせ、それ以上進みません

$ownerName = array();
                    for ($i=0; $i<=$blockUnits ; $i+1) { 
                        $ownerName[$i] = "ownerName".$i;
                        $this->input->post('ownerName[$i]');
                    } 
4

2 に答える 2

1

値を配列に投稿すると簡単になると思います...

例..

 <input type="text" name="ownerName[]" id="ownerName'+i+'" style="width:241px;" />

コントローラーでループします...

foreach($this->input->post('ownerName') as test){
.....
}

他の人に似ている

于 2013-03-21T06:25:43.513 に答える
1

新しい入力テキスト ボックスを追加するときに、以下のようにそれらのフィールドに名前を付けます。

たとえば、ユーザーが 5 つのフィールドを追加したい場合、出力は次のようになります。

<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />

次に、PHPでこれらのフィールドの値を次のように取得できます

$ownerNames = $_POST['ownerName'];

foreach( $ownerNames as $ownerName ) {
    echo "Owner Name is : " . $ownerName;
}

CodeIgniter で試しているように、コードは次のようになります (post 変数を取得)

$ownerNames = $this->input->post('ownerName');

foreach( $ownerNames as $ownerName ) {
    echo "Owner Name is : " . $ownerName;
}
于 2013-03-21T06:30:46.040 に答える