我正试图用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');
}
和My Model
function add_player($data){
$this->db->insert('fantansyteams',$data);
}
我正在使用杂货库生成视图
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');
}
我认为你可以:
- 创建一个返回所有玩家的模型
- 使用复选框列表创建表单
的例子:
<?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的形式,这将是很容易的,我认为:)
我希望这能回答你的问题。我认为你需要在控制器中传递一个数组"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个玩家
我希望这对你有帮助。