2016-05-23 89 views
0

如何从形式获得后值创建表单值,如何使用回路形成后通过环路笨

这里是我的控制器

$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; 

如何简化这种使用循环或的foreach,请帮帮忙使用所需的解决方案

+0

'foreach' ?? “switch”就是最好的选择。你能详细说明你的问题吗?以及发布表单代码。 –

回答

0

使用(int)将您的帖子值转换为int值。

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

(异常或重定向:

$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举例)之前检查)