2009-12-08 6 views
0

J'ai une méthode dans CodeIgniter qui ressemble à ceci,URI Codeigniter et jquery/javascript

public function category() { 
    //$this->output->enable_profiler(TRUE); 
    //echo "Hello function called by ajax"; 
    $table = $this->uri->segment(3); 
    $content_id = $this->uri->segment(4); 
    $data['content'] = $this->site_model->get_content($table, $content_id); 
    $this->load->view("call", $data); 
} 

C'est la méthode est appelée par ajax et les résultats sont retournés sans que l'utilisateur jamais quitter la page, cela signifie que URI n'est jamais passé, donc CI ne peut pas obtenir les segments mais je tire l'url avec jquery est-ce que je peux ajouter ma variable url qui est créée en javascript et en quelque sorte obtenir les valeurs dont j'ai besoin en PHP?

Mon javascript

$("a.navlink").click(function (ev) { 
    $(this).toggleClass("active"); 
    ev.preventDefault(); 
    var id = $(this).attr("id") 
    if ($(this).hasClass("active")) { 
    $("."+id).remove(); 
    } 
    else {  
    // $(this).toggleClass("active"); 
    var url = $(this).attr("href"); 
    $.ajax ({ 
     url: "index.php/home/category", 
     type: "GET", 
     success : function (html) { 
     //alert("Success"); 
     $("#accordion").append($("<div class="+ id +"/>").append(html)); 
     } 
    }); 
    } 
}); 

Répondre

1

Vous devez ajouter l'identifiant à la fin de l'URL dans votre Javascript.

comme ceci: ...

$.ajax ({ 
     url: "index.php/home/category/" + id, 
     type: "GET", 

...

Je pense que vous pouvez également modifier votre PHP:

<?php 
     function category($content_id) { 
      // $content_id = $this->uri->segment(4); 
      $data['content'] = $this->site_model->get_content($table, $content_id); 
      $this->load->view("call", $data); 
     } 

?>