2013-03-21 2 views
1

Я столкнулся с серьезной дилеммой и задаюсь вопросом, как это возможно. У меня есть форма, встроенная в frameworkignign framework. В конце формы находится тег ввода, который принимает число и добавляет новую форму с точными строками входных тегов в качестве значения последнего входного тега. Я сделал это с помощью JavaScript, кодКак динамические теги POST-кода в кодеигниторе

$('#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]'); 
        } 
+0

Некоторые ответы будут оценены .... – Hunain

ответ

1

я думаю, что это должно быть легче, если вы разместите значение в массиве ...

пример. .

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

и цикл его в контроллер ...

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

подобное для других

+0

в действительном аргументе, предоставленном foreach – Hunain

+0

, что означает, что ваше размещенное значение для владельца ownerName пуст ... убедитесь, что вы публикуете значения .. если нет, то вы можете использовать 'is_array()' проверить перед циклом – bipen

+0

я написал значения во входных тегах, и я использовал is_array check, это дает мне ложное значение, это не массив – Hunain

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; 
} 
+0

сервер говорит, что недопустимый аргумент, предоставленный foreach – Hunain

+0

Вы получаете имена владельцев только в CodeIgniter. Правильно? –

+0

Я сделал некоторую отладку и обнаружил, что все массивы пусты, поэтому ничего не опубликовано и в ответ на ваш вопрос выше: если вы имеете в виду файл вида, чем нет, как вы можете видеть, я добавил теги с помощью javascript, и они являются html-тегами, а не codeignter ... – Hunain

Смежные вопросы