2010-01-08 7 views
0

Je suis en train d'obtenir des données à partir d'une base de données à la volée et le placer dans un div, actuellement mon fichier javascript ressemble à ceci,jQuery et CodeIgniter aide

<script type="text/javascript"> 
$(document).ready(function() { 
    //accordians for when the AJAX loads the content 

    // hides the main_menu as soon as the DOM is ready 
    // (a little sooner than page load) 
    $('#main_menu').hide(); 
     // shows the slickbox on clicking the noted link 
     $('h3#show-menu a').click(function() { 
       $('#main_menu').toggle('slow'); 
        return false; 
     }); 
//try and hide the left content when it is null 
    $("#left-content:empty").hide(); 
    //style up the scroll bar 
     $('#left-content').jScrollPane(); 

     //do some AJAX to call the method instead of the browser 
     $("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"); 
       alert(url); 
        $.ajax ({ 
         url: url, 
         type: "POST", 
         success : function (html) { 
          $('#accordion').accordion('destroy'); 
          $("#accordion").append(html).accordion({active:false, header:'h2', collapsible:true}); 
         } 
        }); 
      } 
     }); 
     /* 
       * THIS IS CODE IN QUESTION 
       */ 
     $("a.contentlink").mouseover(function(){ 
      var url = $(this).attr("href"); 
      $.ajax ({ 
       url: url, 
       type: "POST", 
       success : function (html) { 
        $('#abstract').append(html) 
       } 
      }); 
     }); 
    }); 
</script> 

Le code en question est la dernière fonction utilise a.contentlink comme sélecteur, ce que je veux, c'est que l'utilisateur entre dans l'élément avec sa souris et que pour déclencher l'ajax et que les résultats soient ajoutés au conteneur `#abstract ', la méthode est appelée est actuellement,

public function get_content($content_id) { 
     $data['hello'] = "hello"; 
     $this->load->view('template/abstract', $data); 
    } 

Au moment je suis en train de définir une variable simple quand la fonction est appelée, mais je ne reçois rien en retour, tout corps peut-il aider?

+0

Je suis un peu confus sur l'endroit où l'on appelle get_content. Il ne semble pas avoir quelque chose à voir avec le code dans votre première liste. Quel est le contenu renvoyé par l'URL utilisée dans votre appel mouseover ajax? –

+0

Obtenir le contenu est appelé à partir de l'URL du lien que mouseentered – Udders

+0

Pouvez-vous tester que l'appel AJAX fonctionne en essayant de charger une autre URL qui est une simple page HTML statique au lieu de la page CodeIgniter? Je suppose que votre problème est quelque chose dans CodeIgniter, pas dans le Javascript. Aussi, pouvez-vous déposer un 'alert (html)' dans le rappel 'success' pour voir ce qu'il produit? –

Répondre

0

Non correct - le dernier arg vrai besoin que si vous placez la vue dans une variable. Exp: $ view = $ this-> load-> view ('template/abstract', $ data, TRUE); et alors vous pouvez echo $ view;

+0

Cela ne semble pas une réponse constructive, l'esprit l'éditant? –

0

Selon CodeIgniter (http://ellislab.com/codeigniter/user-guide/general/views.html):

vues de retour en tant que données

Il y a un troisième paramètre optionnel vous permet de modifier le comportement de la fonction afin qu'elle renvoie les données sous forme de chaîne plutôt que de l'envoyer à votre navigateur. Cela peut être utile si vous souhaitez traiter les données d'une manière ou d'une autre. Si vous définissez le paramètre sur true (booléen), les données seront renvoyées. Le comportement par défaut est false, ce qui l'envoie à votre navigateur. N'oubliez pas de l'assigner à une variable si vous voulez que les données retournées:

$ string = $ this-> load-> view ('myfile', '', true); Cela signifie que le troisième paramètre est utilisé lors du placement de la vue dans une variable. Par défaut, il faut FAUX ...