2013-03-21 2 views
-1

я приславших массивы в рамках CodeIgniter в соответствии со следующим:как отправить массив в пост с помощью CodeIgniter

for (var i=1; i<=selected; i++) { 
      <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[]" id="ownerName'+i+'" style="width:241px;" /> 
<input type="text" name="salutation[]" id="salutation'+i+'" style="width:137px;" /><br /> 
     } 

, когда я пытаюсь отправить его с помощью следующих действий:

$ownerNames = $this->input->post('ownerName'); 
if (is_array($ownerNames)) { 
    foreach($ownerNames as $ownerName) { 
    echo "Owner Name is : " . $ownerName; 
    } 
} else {echo "Owner is not array";} 

это вся моя контроллер, со всем размещением:

if ($this->form_validation->run() == FALSE) { 
        $this->load->view('newblock'); 
       } else { 
        $registrarName = $this->input->post('registrarName'); 
        $blockName = $this->input->post('blockName'); 
        $serviceType = $this->input->post('serviceType'); 
        $number = $this->input->post('number'); 
        $email = $this->input->post('email'); 
        $address1 = $this->input->post('address1'); 
        $address2 = $this->input->post('address2'); 
        $address3 = $this->input->post('address3[]'); 
        $town = $this->input->post('town'); 
        $postCode = $this->input->post('postCode'); 
        $blockUnits = $this->input->post('blockUnits'); 


        echo print_r($_POST); 

        $unitNames = $this->input->post('unitName', TRUE); 
        echo $unitNames[0].'<br />'; 
        if (is_array($unitNames)) { 
         foreach($unitNames as $unitName) { 
         echo "unit Name is : " . $unitName; 
         } 
        } else { 
         echo "unit is not array"; 
        } 


        $ownerNames = $this->input->post('ownerName', TRUE); 
        echo $ownerNames[0].'<br />'; 
        if (is_array($ownerNames)) { 
         foreach($ownerNames as $ownerName) { 
         echo "Owner Name is : " . $ownerName; 
         } 
        } else { 
         echo "Owner is not array"; 
        } 


        $salutations = $this->input->post('salutation', TRUE); 
        echo $salutations[0].'<br />'; 
        if (is_array($salutations)) { 
         foreach($salutations as $salutation) { 
         echo "salutation is : " . $salutation; 
         } 
        } else { 
         echo "salutation is not array"; 
        } 

отображается «Владелец не является массивом»; который указывает на массив пуст, после отладки я нашел с помощью print_r, что массив действительно был пуст, ничего не отвечал ...

+0

http://www.php.net/serialize :) – 2013-03-21 07:42:22

+0

Я не понимаю. В чем проблема – Hunain

+0

перед первой строкой кода, который вы здесь написали, попробуйте 'print_r ($ _ POST)' просто проверить, есть ли у вас ваши данные в виде массива. – MatRt

ответ

6

попробовать этот

тестовый контроллер

$ownerNames = $this->input->post('ownerName'); 
    if (is_array($ownerNames)) { 
    foreach ($ownerNames as $ownerName => $k) { 
     echo "Owner Name is : " . $k . "<br/>"; 
    } 
    } else { 
    echo "Owner is not array"; 
    } 

и тестовое

<form method="post"> 
    <input type="text" name="ownerName[]" /> 
    <input type="text" name="ownerName[]" /> 
    <input type="text" name="ownerName[]" /> 
    <input type="submit" value="ownerName" /> 
</form> 

// Выходные данные

Owner Name is : name1 
Owner Name is : name2 
Owner Name is : name3 
+0

никакого эффекта, массив все еще пуст, проблема где-то в публикации – Hunain

+0

да. оно работает. проверьте свой код. – Dino

+3

Тот, кто ниспослан; ответ правильный. Просто потому, что он не работает для OP, вы не должны спускаться вниз, если только ответ не прав. +1 для компенсации – 2013-03-21 08:05:46

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