2016-05-23 1 views
0

Как получить пост значения из формы, созданные с помощью петли,Как разместить значения формы, созданные с помощью цикла в CodeIgniter

Вот мой контроллер

$valuepost=$this->input->post('value'); 

if($valuepost==1){ 
    $val1=array('NoOfinput' => $this->input->post('val1input'),'NoOfbox' => $this->input->post('val1box'),'boxvalue' => null); 
    $val=array($val1); 
    } 
    elseif($valuepost==2){ 
    $val1=array('NoOfinput' => $this->input->post('val1input'),'NoOfbox' => $this->input->post('val1box'),'boxvalue' => null); 
    $val2=array('NoOfinput' => $this->input->post('val2input'),'NoOfbox' => $this->input->post('val2box'),'boxvalue' => null); 
    $val=array($val1,$val2); 
    } 
     elseif($valuepost==3){ 
    $val1=array('NoOfinput' => $this->input->post('val1input'),'NoOfbox' => $this->input->post('val1box'),'boxvalue' => null); 
    $val2=array('NoOfinput' => $this->input->post('val2input'),'NoOfbox' => $this->input->post('val2box'),'boxvalue' => null); 
    $val3=array('NoOfinput' => $this->input->post('val3input'),'NoOfbox' => $this->input->post('val3box'),'boxvalue' => null); 

    $val=array($val1,$val2,$val3); 
    } 

    elseif($valuepost==4){ 
    $val1=array('NoOfinput' => $this->input->post('val1input'),'NoOfbox' => $this->input->post('val1box'),'boxvalue' => null); 
    $val2=array('NoOfinput' => $this->input->post('val2input'),'NoOfbox' => $this->input->post('val2box'),'boxvalue' => null); 
    $val3=array('NoOfinput' => $this->input->post('val3input'),'NoOfbox' => $this->input->post('val3box'),'boxvalue' => null); 
    $val4=array('NoOfinput' => $this->input->post('val4input'),'NoOfbox' => $this->input->post('val4box'),'boxvalue' => null); 

    $val=array($val1,$val2,$val3,$val4); 
    } 

echo val; 

Как упростить это с помощью петли или Еогеасп, Пожалуйста, помогите с требуемым решением

+0

'foreach' ?? 'switch' лучше всего подходит для этого. Можете ли вы подробнее рассказать о своем вопросе? Также отправьте код формы. –

ответ

0

Использование (int) для перевода значения вашего сообщения в int.

$valuepost = (int) $this->input->post('value'); 
// declaring the array that will store the final result 
$val = []; 

// looping as many times as necessary 
for ($i = 1; $i <= $valuepost; $i++) { 
    $val[] = [ 
     'NoOfinput' => $this->input->post('val' . $i . 'input'), 
     'NoOfbox' => $this->input->post('val' . $i . 'box'), 
     'boxvalue' => null, 
    ]; 
} 

var_dump($val); 

Вы должны также проверить, прежде чем зацикливание, если $ valuepost не была слишком высокой (если вы уверены, что это будет не более 4 на примере):

if ($valuepost > 4) { 
    throw new \Exception('Must not be over 4.'); 
} 

(исключение или перенаправление)

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