如何仅在点击类别上刷新地图?

时间:2016-08-02 10:26:22

标签: php codeigniter

有些人可以帮我解决这个问题 我的网站上有一张地图,我想只在点击我的this is my product

类别时刷新地图
          <?php
          /* $message = "in home";
          echo "<script type='text/javascript'>alert('$message');</script>";*/

          foreach($categories as $category){
            echo '<li><a href="javascript:void(0); "onclick="javascript:changeData'.base_url('main/home/' .$category->adv_category).'"><img src="'.base_url('uploads/'.$category->image).'" alt="'.$category->cat_name.'" width="30" height="30"/></br><span>'.$category->cat_name.'</span></a></li>';
          }
      ?>
      </ul>
  </div>
</div>
<script>

    function changeData(category){

      var urlCI = '.base_url('main/home/' .$category->adv_category).';

      $.ajax({
        type: "POST",
        url: urlCI,
        data:{'categoryReq':category},
        success: function(response) {
          if(response!=''){
            $('map_marker').html(response);
          }else{
            return false;
          }
        }
      });

    }
</script>

我的控制器代码是如果你需要其他代码请问我会给。我这只是为了参考,谢谢你

public function home($cat=NULL)
{
    //$cat=10;

    //echo debug_backtrace()[1]['function'];

    if($_POST)
    {
        print_result($_POST);
    }
    $sql="SELECT * FROM (`ad_category`) WHERE `status`=1 AND `del_status`=0";
    $this->data['categories']=$this->db->query($sql)->result();

    if($cat)
    {
        //$message = $cat;
        //echo "<script type='text/javascript'>alert('$message');</script>";


        //$this->data['middle_view']='home_again';
        $this->data['ads']=$this->advt_m->get_advts($cat);
        $this->input->post('map_marker',$this->data);
        $this->data['subview']='home';
        $this->load->view('__layout_main',$this->data);
    }   
    else
    {
        /*$message = "Here 2";
        echo "<script type='text/javascript'>alert('$message');</script>";  
        */
        $this->data['subview']='home';
        //$this->data['middle_view']='home';
        $this->data['ads']=NULL;
        $this->load->view('__layout_main',$this->data);
    }   

2 个答案:

答案 0 :(得分:0)

将Map div及其javascripts拆分为另一个视图。

创建具有地图所有必要功能的功能。通过Ajax调用添加并加载它。

Ajax成功:

success:function(response){
   $('div').html(response);
   //response will be the function which holds the $this->load->view('map');
}

map.php

<div id="map">
 YOUR MAP GOES HERE
</div>
<script>
 MAP SCRIPT
</script>

main.php(你的前端)

<div id="map_here">

</div>

<script>
 $.ajax({
  type:"POST",
  //Send some values
  data:{
       somevalue:'somedata',
       category:"mine"
       },
 url:"<?php echo base_url();?>mycontroller/mapfunc",
success:function(response){
 $('#map_here').html(response);
}
})
</script>

myconroller:

function mapfunc(){
 //Using this value you can change the script
 $data['category'] = $_POST('category');
 $data['location'] = $_POST('somevalue');
 //Process the works
 $this->load->view('map',$data);
 //On Ajax call this page can be loaded
}

每个ajax调用它都会重新加载div。 任何疑惑只是评论它......

答案 1 :(得分:0)

var urlCI = '.base_url('main/home/' .$category->adv_category).';

可能应该是

var urlCI = '<?php echo base_url("main/home/$category->adv_category"); ?>';