如何在codeigniter中发布动态输入标记

时间:2013-03-21 05:48:18

标签: php javascript html codeigniter

我正面临严重的困境,并想知道如何做到这一点。我有一个内置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]');
                    } 

2 个答案:

答案 0 :(得分:1)

我认为如果你在数组中发布你的值会更容易......

例如..

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

并将其循环到控制器中......

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

与其他人相似

答案 1 :(得分: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中尝试时,代码看起来像这样(获取后变量)

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

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