关于数组的问题,大哥大姐来看看哈
我想做一个批量删除的功能,想问下怎么 获取视图上的数组,我这样写得到的得不到视图上选择了的ID我的思路是从视图传回一个数组到控制器,然后控制器在对相应的ID进行操作。请各位给点意见
视图文件:
<?phpecho form_open('college/do_excel/btnAC','id=form1','name=form1');?>
<tablewidth="875" border="2"class="user_gl_v_table3" cellpadding="0" cellspacing="0" bordercolor="#00CC00">
<tr align="center" style="font-weight:600; line-height:30px;">
<th><div align="center">
<input type="checkbox" name="chkall" value="checkbox"class="btn2" id="chkall" />
</div></th>
<th width="126">学号</th>
<th width="127">姓名</th>
<th width="134">辅导员</th>
<th width="144">辅导员工号</th>
<th width="118">状态</th>
<th width="266" colspan="4">操作</th>
</tr>
<?php
foreach( $student_array as $value )
{
echo $value;
}
?>
<tr>
<tdcolspan=20 ><input name="全选" type="button" class="btn1" id="全选" value="全选" />
<input type="submit" name="action" value="激活" class="btn1" />
<input type="submit" name="action" value="冻结" class="btn1" />
<input type="submit" name="action" value="删除" class="btn1"></td>
</tr>
</table>
</form>
控制器输出表格文件:
$query2 = $this->db->query("SELECT * FROM student,instructor WHERE instructor.id= instructor_id limit 20 ");
if($query2->num_rows() > 0){
$temp = 0;
foreach ($query2->result_array() as $row)
{
if($row['life']==0)
{
$life="冻结";
}else{
$life="激活";
}
$student_array[$temp] = <tr><td><div align=\"center\"> <input type=\"checkbox\" name=\"tabledb[]\" value=".$row['id']." /></div></td><td>".$row['s_account']."</td><td>".$row['s_name']."</td><td>".$row['ins_name']."</td><td>".$row['instructor_id']."</td><td>" .$life."</td> </tr>";
$temp++;
}
}else{
$student_array ="<tr><tdalign=\"center\" colspan=\"6\" >抱歉,暂时没有此相关数据!</td></tr>";
}
控制器按钮处理文件:
function btnAC(){
$action =$this->input->post('action');
$get_id = array($this->input->post('tabledb'));//用工号
echo $get_id;
switch($action){
case '激活';
$this->jh($get_id);
break;
case '冻结';
$this->dj($get_id);
break;
case '删除';
$this->del($get_id);
break;
default;
break;
}
}
<input type="checkbox" name="chkall[]" value="<?php echo $your_data_id; ?>"class="btn2"/> 本帖最后由 hainuo 于 2011-12-26 09:11 编辑
$student_array[$temp] = <tr><td><div align=\"这里应该会报错吧$student_array[$temp] = "<tr><td><div align=\" 每一行设一个 checkbox ,然后在每一行的tr处写一个唯一的ID,类似于:
<?php foreach($data AS $user) : ?>
<tr id="data_<?php echo $user['id']; ?>">
<td><input type="checkbox" name="id[]" class="ids" value="<?php echo $user['id']; ?>" /></td> <td>XXX</td>
<td>XXX</td>
<td>XXX</td>
<td>XXX</td>
</tr>
<?php endforeach; ?>
然后使用 ajax 提交,用 $id_array = $this->input->post('id'); 这个 $id_array 是一个数组,再 foreach() 删除就行了,ajax回调里就删除 $('#data_' + id + '') 即可,这样很方便的。
thenbsp 发表于 2011-12-26 11:03 static/image/common/back.gif
每一行设一个 checkbox ,然后在每一行的tr处写一个唯一的ID,类似于:
可是我不会用ajax 你这个代码看着就头大:L
既然没有用到ajax干嘛还在控制器里输出html,html都应该写在view里面啊
控制器输出就应该把结果集数组传到view里面在view循环输出结果集就可以了
批量操作就是沙发所说的把checkbox的name属性名称加上"[]"
控制器接收的时候$this->input->post('chkall')这样接收,然后你print接收到的这个变量~他输出的是个array数组,里面的数据就是你前面勾选的checkbox的value值 zhouli520 发表于 2011-12-28 17:29 static/image/common/back.gif
你这个代码看着就头大
既然没有用到ajax干嘛还在控制器里输出html,html都应该写在view里面啊
控制器输出 ...
:loveliness:不知道在视图里面 怎么循环输出丫 怎么在手册里面没看到涅 本帖最后由 zhouli520 于 2011-12-28 18:09 编辑
栺尖灬丿流年ヽ 发表于 2011-12-28 17:58 static/image/common/back.gif
不知道在视图里面 怎么循环输出丫 怎么在手册里面没看到涅
<?php if(isset($member)){?>
<?php for($y=0;$y<count($friend);$y++){?>
<div id="sI<?php echo $friend[$y]['iid']?>" class="recommend_mimg_div">
<div class="uname"><a href="#"><?php echo substr($friend[$y]['firstname'],0,9) ?><br/><?php echo substr($friend[$y]['lastname'],0,9) ?></a></div>
</div>
<?php }}?>
视图里面也是可以使用php代码的,或用php标签~手册不是万能的
zhouli520 发表于 2011-12-28 18:09 static/image/common/back.gif
视图里面也是可以使用php代码的,或用php标签~手册不是万能的
:Q我以为ci像thinkPHp一样 也有一个 可以在视图里面 循环输出的标签 :(怎么我获取到的只是一个 array 涅 都没有值的
页:
[1]
2