如题.

解决方案 »

  1.   


    //注意分页条和分页内容要分别加载.
    //分页处理
     //设置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.   

    1)去掉js后,分页标签可以用:页码的链接写正常应该跳往的地址,如“a.php?page=3”;然后写onclick方法,实现ajax分页,并返回false来阻止跳转,这样当禁用js时,正常的href链接地址就会起作用,而启用js时,onclick方法会起作用;
    2)批处理:只需要将参数以数组形式发送就行了,如“delete.php?id[]=1&id[]=2&id[]=3”
      

  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]' >&nbsp;";
      
       }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"];
    和专项的定制数据,例如推送首页时,就有很多定制的数据要一起发送。
      

  4.   

    1. 先用原始方式做好分页2. 以上测试成功后,再js平稳退化
    ajax纯属是对js使用是否熟悉的问题,服务器端php要加个判断分别处理直接ajax输出和模板输出