2016-04-28 62 views
1

我试图将一个玩家列表插入表中同一行的多个列。这些球员是通过位置进行分组,让他们有,我希望检索并插入到一个单独的SQL(我也用javascript来限制所选选项的数量自己的选择形式。CI - 帮助插入多个选择表单,每个选择表单有多个选择的选项

Table: contests_rosters 
id, player1, player2, player3, player4 

player1 and player2 will be from select name "forwards[]" 
player3 and player4 will be from select name "defenders[]" 

的问题是当我在控制器中调用帖子时,我不知道如何操作阵列,以便我可以做一个插入而不是多个插入。

请问您能帮我吗? - 此外,如果您可以告诉我什么该帖子的返回将是和解释操作步骤,以便我能理解,这将不胜感激。

VIEW - 选项由阿贾克斯

Select Forward 
<br/><br/> 
<fieldset> 
    <select name="search_forward" id="players_forwards" multiple size="25" style="width:500px"> 
    </select> 

    <a href="JavaScript:void(0);" id="btn-add_forward">Add &raquo;</a> 
    <a href="JavaScript:void(0);" id="btn-remove_forward">&laquo; Remove</a> 

    <select name="forwards[]" id="players_forwards_selected" multiple size="2" style="width:500px"> 
    </select> 

</fieldset> 
<br /><br /> 

Select Defender 
<br/><br/> 
<fieldset> 
    <select name="search_defender" id="players_defenders" multiple size="25" style="width:500px"> 
    </select> 

    <a href="JavaScript:void(0);" id="btn-add_defender">Add &raquo;</a> 
    <a href="JavaScript:void(0);" id="btn-remove_defender">&laquo; Remove</a> 

    <select name="defenders[]" id="players_defenders_selected" multiple size="3" style="width:500px"> 
    </select> 

</fieldset> 
<br /><br /> 

控制器

$data1 = $this->input->post('forwards'); 
$data2 = $this->input->post('defenders'); 

.....manipulation, then insert into table 

回答

0

大量的试验和错误后取回,我设法找到了以下解决方案。不知道它是否是最干净的解决方案,但它的工作原理。很高兴听到你的想法。

控制器

$forwards_post = $this->input->post('forwards'); 
$defenders_post = $this->input->post('defenders'); 

$forwards = array(
      'player1'  =>  $forwards_post[0], 
      'player2'  =>  $forwards_post[1] 
     ); 

$defenders = array(
      'player3'  =>  $defenders_post[0], 
      'player4'  =>  $defenders_post[1] 
     ); 

$data_entry = array_merge($forwards, $defenders); 

阵列是现在在模型

$this->input('contests_rosters', $data_entry); 

瞧准备单个插入。