2009-12-09 6 views
3

Je suis en train d'écrire ma première application web Codeigniter, et j'aimerais utiliser AJAX pour tirer quelques infos pour une boîte modale. Quelqu'un peut-il me guider à travers un moyen facile d'incorporer ajax w/CI? En particulier, l'utilisateur cliquera sur un lien, et au lieu d'être redirigé vers une autre page, cette page sera chargée dans une boîte modale.AJAX dans Codeigniter

Merci!

+0

vous voulez apprendre ajax ou juste savoir comment l'utiliser dans CI? En outre, Kohana bascule plus que CI;) – yoda

+0

Utilisation d'ajax dans CI. Dis-moi pourquoi Kohana est meilleur. –

+0

Kohana est un groupe de grands codeurs qui ont trouvé dans CI une bonne base mais qui a changé beaucoup de choses, afin d'obtenir un meilleur cadre. En fait, ils prennent beaucoup d'idées d'autres fw comme Cake, Symfony et d'autres, et fusionnent les meilleurs dans leur propre. Il est axé sur la communauté, pas sur l'entreprise comme CI, et il a tellement de fonctionnalités que c'est mieux si vous le consultez sur http://kohanaphp.com – yoda

Répondre

4

Répondre à vous poser des questions, et que CI ne semble pas avoir encore mis en œuvre un soutien approprié à javascript bibliothèques, vous pouvez utiliser une fonction comme celui-ci pour faire en sorte que les informations que vous avez affaire à vient ajax:

http://snipplr.com/view/1060/check-for-ajax-request/

Notez que cela ne fonctionne qu'avec les librairies javascript comme jQuery ou MoonTools

Après cela, il vous suffit de traiter les informations comme si elle était une page normale, obtenir les données avec $ this-> entrée -> post ('field') ou $ this-> input-> get ('field') les variables assainies.

dans un exemple (en utilisant jquery), supposons que vous avez une balise d'ancrage que vous souhaitez supprimer une ligne dans une liste d'éléments:

$(function() { 

    $('a.delete').click(function(e) { 
    // prevents the default behaviour of the anchor 
    e.preventDefault(); 
    // gets the id stored in the anchor as attribute 
    var cid= $(this).attr('cid'); 

    // instantiate and executes the ajax 
    $.ajax({ 
    type: 'POST', 
    url: 'http://www.yoursite.com/ajax.php', 
    data: "action=delete&cid="+cid, 
    async: true, 
    success: function(data){ 
    // alerts the response, or whatever you need 
    alert(data); 
    } 
    }); 
}); 

Après cela, il vous suffit de construire votre code CI comme une page normale. Notez que j'ai utilisé des URLs normales dans la requête ajax (url pour la base, données pour les paramètres), et je ne sais pas si cela fonctionne correctement avec les urls "url_rewrited", mais ils pourraient fonctionner sans problèmes, si vous utilisez simplement " url: "paramètre ajax pour insérer l'URL complète.

+0

J'apprécierais vraiment un exemple! :) –

+0

sauf au lieu de http://example.com/somepage.php, dans CI vous devriez normalement mettre http://example.com/index.php/someclass/somemethod ou http://example.com/ class/method – andyk

+0

J'ai modifié cela pour travailler avec mon modal. Merci beaucoup! –