请教一下,如何实现ajax 分页,去掉js后,分页标签可以用[兼容wap]. 如何实现ajax 批处理操做. 例如批量删除,批量设置状态. 如题. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //注意分页条和分页内容要分别加载.//分页处理 //设置ajax分页效果. $("#pager a").click( function() { var href = $(this).attr("href"); //内容页加载 href = href.replace('/index/', '/index_list_data/'); show_info('分页提示','分页数据加载中'); $.get(href, function(data){ hid(); $("#list_data").html(data); } ); //分页栏架载 href = href.replace('/index_list_data/', '/index_list_nav/'); $.get(href, function(data){ $("#list_nav").html(data); } ); return false; }); 1)去掉js后,分页标签可以用:页码的链接写正常应该跳往的地址,如“a.php?page=3”;然后写onclick方法,实现ajax分页,并返回false来阻止跳转,这样当禁用js时,正常的href链接地址就会起作用,而启用js时,onclick方法会起作用;2)批处理:只需要将参数以数组形式发送就行了,如“delete.php?id[]=1&id[]=2&id[]=3” 批处理有很多种。通常最觉见的两种是批量更新数据,和批量删除数据.//后台部分。定义批处理按钮. $this->buttons = array( //设置批处理操作数组 array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_id','set_value'=>'删除选中','value'=>'删除选中','needConfirm'=>1), array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_cid','set_value'=>'','value'=>'设置类别','needConfirm'=>0,'set_type'=>'text','text_size'=>4), array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_order','set_value'=>'','value'=>'推送至首页','needConfirm'=>0,'set_type'=>'select','text_size'=>4), array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_published','set_value'=>'1','value'=>'设为发布','needConfirm'=>1) , array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_published','set_value'=>'0','value'=>'取消发布','needConfirm'=>0), array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_ishot','set_value'=>'1','value'=>'设为hot','needConfirm'=>1) , array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_ishot','set_value'=>'0','value'=>'取消hot','needConfirm'=>0) );/* 生成批处理按钮.**/foreach($this->buttons as $val) { if(isset($val['set_type']) && $val['set_type'] == 'text') { $tableName = $val["set_table"]; $html .= "<input type=\"button\" class=\"button_style\" set_table = '$val[set_table]' set_field = '$val[set_field]' set_value = '$val[set_value]' value = '$val[value]' needConfirm = '$val[needConfirm]' href = '".site_url($this->getPath()."page/".$this->mCurrentPage.$this->mParameters)."' set_type = '$val[set_type]' />"; $html .= ":<input type = 'text' id = 'target_$val[set_field]' size = '$val[text_size]' > "; }else if(isset($val['set_type']) && $val['set_type'] == 'select') { $html .= "<input type=\"button\" class=\"button_style2\" value = '推送至首页' onclick='send_to_home()' />"; $CI = &get_instance(); $sql = "select gamepagecate_id as id ,gamepagecate_title as title from gamepagecate"; $query = $CI->db->query($sql); foreach ($query->result() as $row) { $data["gamepage"][]= array("id"=>$row->id,"title"=>$row->title); } $sql = "select homepagecate_id as id ,homepagecate_title as title from homepagecate"; $query = $CI->db->query($sql); foreach ($query->result() as $row) { $data["homepage"][]= array("id"=>$row->id,"title"=>$row->title); } $str_homepage = ""; foreach($data["homepage"] as $key=>$val){ $str_homepage .= "<li><input type=\"checkbox\" name=\"recomm[]\" value=\"homepage_$val[id]\" />$val[title]</li>"; } $str_gamepage = ""; foreach($data["gamepage"] as $key=>$val){ $str_gamepage .= "<li><input type=\"checkbox\" name=\"recomm[]\" value=\"gamepage_$val[id]\" />$val[title]</li>"; } $html .= '<div class="select_div" id = "select_div"> <h2>内容推送至</h2> <div class="select_div_cont"> <h3>推送至网站首页</h3> <ul> '.$str_homepage.' </ul> <div class="clear"></div> <h3>推送至电竞首页</h3> <ul> '.$str_gamepage.' <div class="clear"></div> <hr> <div class="foot"><input type="button" value="我要推送" onclick="send_it(\''.$tableName.'\')"/></div> </div> </div>'; /** * 最常见的批处理设置值的 */ function send_batch() { $set_table = $_POST["set_table"]; $set_field = $_POST["set_field"]; $set_value = $_POST["set_value"]; $id= $_POST["id"]; $id_array =explode("&",$id); foreach($id_array as $key => $val){ $val_arr = explode("=",$val); $str_val[]= $val_arr[1]; } $cond = "where $set_table"."_id in (".implode(",",$str_val).")"; $sql ="update `$set_table` set `$set_field` = '$set_value' $cond "; if($this->db->query($sql)) { echo "{success:ok}"; } } /**** * 批量删除数据 */ function del_batch() { $set_table = $_POST["set_table"]; $set_field = $_POST["set_field"]; $set_value = $_POST["set_value"]; //进行删除调整,调整为调用相应的模型进行删除。 $model_name = CS_get_model_name($set_table); $this->load->model($model_name); $id= $_POST["id"]; $id_array =explode("&",$id); foreach($id_array as $key => $val){ $val_arr = explode("=",$val); $str_val[]= $val_arr[1]; } $this->$model_name->delete($str_val); echo "{success:ok}"; }然后可以通过定制js 把批量的数据的id收集起来,以及相关联的参数,例如 $set_table = $_POST["set_table"]; $set_field = $_POST["set_field"]; $set_value = $_POST["set_value"];和专项的定制数据,例如推送首页时,就有很多定制的数据要一起发送。 1. 先用原始方式做好分页2. 以上测试成功后,再js平稳退化ajax纯属是对js使用是否熟悉的问题,服务器端php要加个判断分别处理直接ajax输出和模板输出 在IE6下,菜单滑动效果,有些显示层,有些不显示层。 用过discuz的朋友进来看看。 字符串的截取问题 mvc模式的問題 怎样读取一个不在web目录下的图片文件? 分类信息自定义搜索url怎么处理? php程序优化求建议,执行速度太慢 如何上传大图片 请教文章系统的调用方法 为何拿不到 URL 上所传的变数的值?? php函数问题 记住登录功能如何实现???
//注意分页条和分页内容要分别加载.
//分页处理
//设置ajax分页效果.
$("#pager a").click( function() {
var href = $(this).attr("href");
//内容页加载
href = href.replace('/index/', '/index_list_data/');
show_info('分页提示','分页数据加载中');
$.get(href, function(data){
hid();
$("#list_data").html(data);
}
);
//分页栏架载
href = href.replace('/index_list_data/', '/index_list_nav/');
$.get(href, function(data){
$("#list_nav").html(data);
}
);
return false;
});
2)批处理:只需要将参数以数组形式发送就行了,如“delete.php?id[]=1&id[]=2&id[]=3”
通常最觉见的两种是批量更新数据,和批量删除数据.//后台部分。
定义批处理按钮.
$this->buttons = array( //设置批处理操作数组
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_id','set_value'=>'删除选中','value'=>'删除选中','needConfirm'=>1),
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_cid','set_value'=>'','value'=>'设置类别','needConfirm'=>0,'set_type'=>'text','text_size'=>4),
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_order','set_value'=>'','value'=>'推送至首页','needConfirm'=>0,'set_type'=>'select','text_size'=>4),
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_published','set_value'=>'1','value'=>'设为发布','needConfirm'=>1) ,
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_published','set_value'=>'0','value'=>'取消发布','needConfirm'=>0),
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_ishot','set_value'=>'1','value'=>'设为hot','needConfirm'=>1) ,
array('set_table'=>$this->tableName,'set_field'=>$this->tableName.'_ishot','set_value'=>'0','value'=>'取消hot','needConfirm'=>0)
);
/* 生成批处理按钮.**/
foreach($this->buttons as $val)
{
if(isset($val['set_type']) && $val['set_type'] == 'text')
{
$tableName = $val["set_table"];
$html .= "<input type=\"button\" class=\"button_style\" set_table = '$val[set_table]' set_field = '$val[set_field]' set_value = '$val[set_value]' value = '$val[value]' needConfirm = '$val[needConfirm]' href = '".site_url($this->getPath()."page/".$this->mCurrentPage.$this->mParameters)."' set_type = '$val[set_type]' />";
$html .= ":<input type = 'text' id = 'target_$val[set_field]' size = '$val[text_size]' > ";
}else if(isset($val['set_type']) && $val['set_type'] == 'select')
{
$html .= "<input type=\"button\" class=\"button_style2\" value = '推送至首页' onclick='send_to_home()' />";
$CI = &get_instance();
$sql = "select gamepagecate_id as id ,gamepagecate_title as title from gamepagecate";
$query = $CI->db->query($sql);
foreach ($query->result() as $row)
{
$data["gamepage"][]= array("id"=>$row->id,"title"=>$row->title);
}
$sql = "select homepagecate_id as id ,homepagecate_title as title from homepagecate";
$query = $CI->db->query($sql);
foreach ($query->result() as $row)
{
$data["homepage"][]= array("id"=>$row->id,"title"=>$row->title);
}
$str_homepage = "";
foreach($data["homepage"] as $key=>$val){
$str_homepage .= "<li><input type=\"checkbox\" name=\"recomm[]\" value=\"homepage_$val[id]\" />$val[title]</li>";
}
$str_gamepage = "";
foreach($data["gamepage"] as $key=>$val){
$str_gamepage .= "<li><input type=\"checkbox\" name=\"recomm[]\" value=\"gamepage_$val[id]\" />$val[title]</li>";
}
$html .= '<div class="select_div" id = "select_div">
<h2>内容推送至</h2>
<div class="select_div_cont">
<h3>推送至网站首页</h3>
<ul>
'.$str_homepage.'
</ul>
<div class="clear"></div>
<h3>推送至电竞首页</h3>
<ul>
'.$str_gamepage.'
<div class="clear"></div>
<hr>
<div class="foot"><input type="button" value="我要推送" onclick="send_it(\''.$tableName.'\')"/></div>
</div>
</div>'; /**
* 最常见的批处理设置值的
*/
function send_batch() {
$set_table = $_POST["set_table"];
$set_field = $_POST["set_field"];
$set_value = $_POST["set_value"];
$id= $_POST["id"];
$id_array =explode("&",$id);
foreach($id_array as $key => $val){
$val_arr = explode("=",$val);
$str_val[]= $val_arr[1];
}
$cond = "where $set_table"."_id in (".implode(",",$str_val).")";
$sql ="update `$set_table` set `$set_field` = '$set_value' $cond ";
if($this->db->query($sql))
{
echo "{success:ok}";
}
} /****
* 批量删除数据
*/
function del_batch()
{
$set_table = $_POST["set_table"];
$set_field = $_POST["set_field"];
$set_value = $_POST["set_value"];
//进行删除调整,调整为调用相应的模型进行删除。
$model_name = CS_get_model_name($set_table);
$this->load->model($model_name);
$id= $_POST["id"];
$id_array =explode("&",$id);
foreach($id_array as $key => $val){
$val_arr = explode("=",$val);
$str_val[]= $val_arr[1];
}
$this->$model_name->delete($str_val);
echo "{success:ok}";
}
然后可以通过定制js 把批量的数据的id收集起来,以及相关联的参数,
例如 $set_table = $_POST["set_table"];
$set_field = $_POST["set_field"];
$set_value = $_POST["set_value"];
和专项的定制数据,例如推送首页时,就有很多定制的数据要一起发送。
ajax纯属是对js使用是否熟悉的问题,服务器端php要加个判断分别处理直接ajax输出和模板输出