Codeigniter multiple选择并插入数据库

时间:2014-06-24 22:38:39

标签: php codeigniter crud

我正在努力建立一个带有codeigniter的幻想足球联赛,到目前为止一直很好,但我对选择特定幻想球队的球员有问题。到目前为止,您可以通过按钮看到玩家一次添加一名玩家。我的问题是如何创建一个代码来首先选择15个玩家,然后将所有玩家插入数据库,而不是一次添加一个...这是我的控制器

 public function addPlayer($playerID)
{
        $this->load->model('team_model');
    $data=array(
        'GK1'=>$playerID,
         );

        $this->team_model->add_player($data);
    $this->load->view('header');
    $this->load->view('transfer_view');
     $this->load->view('footer');


}

和我的模特

              function add_player($data){

           $this->db->insert('fantansyteams',$data);


            }

我正在使用杂货Grud来生成观点

public function transfers($output = null)
{
$crud = new grocery_CRUD();

        $crud->set_theme('datatables');
        $crud->set_table('player');

        $crud->add_action('Add', '', 'team/addPlayer','ui-icon-plus');

        $crud->columns('playerName','value','position');


        $output = $crud->render();



 $this->load->view('header');
$this->load->view('transfer_view',$output);
$this->load->view('footer');


}

2 个答案:

答案 0 :(得分:0)

我认为您需要在控制器中传递一个“playerID”数组:

$data = array(
           'GK1'=> $playerID, // 'GK1' => array(1,2,3,12...)
        );

并在您的模型中:

function add_player($data){
  // foreach players (1,2,3,12...) => insert the player
  foreach($data['GK1'] as $playerID) {
     $this->db->insert('fantansyteams', array('GK1' => $playerID));
  }
}

就像你可以插入1个,2个,15个,100个玩家

我希望这会对你有所帮助:)。

答案 1 :(得分:0)

我想你可以:

  1. 创建一个返回所有玩家的模型
  2. 使用复选框列表创建表单
  3. 示例:

    <?php foreach ($players as $player) : ?>
       <input type="checkbox" name="players[]" value="<?= $player->id ?>" > <?= $player->name ?> </input>
    <?php endforeach; ?>
    

    我在php文件中试过这个

    if (isset($_POST['players'])) {
        // players id list
        var_dump($_POST['players']);
    }    
    
    // players list 
    echo "<form action='' method='POST' >
            <input type='checkbox' name='players[]' value='1'> Player 1 </input>
            <input type='checkbox' name='players[]' value='2'> Player 2 </input>
            <input type='checkbox' name='players[]' value='3'> Player 3 </input>
            <input type='checkbox' name='players[]' value='15'> Player 15 </input>
            <input type='submit' value='Add'>
          </form>";
    

    例如,当我选择播放器1和15时,var_dump结果为:

    array (size=2)
      0 => string '1' (length=1)
      1 => string '15' (length=2)
    

    我没有尝试使用codeIgniter,但如果您已经使用过codeIgniter的表单,我认为这很容易:)

    我希望能回答你的问题。