2010-04-05 4 views
2

Je développe une application web et je suis en elle jquery intègrent ... Vous voyez maintenant pour les appels avec ajax jquery à ma fonction de contrôleur ....Comment appeler une méthode de contrôleur php en utilisant jquery?

jquery.ajax() serait utile je pense ... Mais comment appeler ma méthode de commande ....

$.ajax({ 
     type: "POST", 
     url: "http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails", 
     data: "", 
     contentType: "application/json; charset=utf-8", 
     async: false, 
     dataType: "json", 
     success: function(jsonObj) { 

function loadbookdetails() 
{ 
    //Paging 
     $college=$_SESSION['college']; 
     $this->load->library('pagination'); 
     $data['bookdetails'] = $this->librarymodel->selectbook($college); 
     //$data['rackOptionData'] = $this->librarymodel->selectrack(); 
     if(empty($data['bookdetails'])) 
      { 
      $data['comment'] = 'no record found!'; 
      } 

     $this->load->view('bookdetials',$data); 
} 

Je suis ici enregistre le chargement de la façon de l'utiliser avec la fonction jquery.ajax() et comment convertir $data en JSON et l'utiliser avec jquery et itérer avec une table ...

Répondre

4

Vous ne pouvez pas directement interfacer jQuery avec la fonction PHP tions, car elles ne s'exécutent pas en même temps: PHP est exécuté côté serveur (et génère généralement la page HTML), jQuery est exécuté côté client.

Vous auriez jQuery faire un appel Ajax à l'URL d'une page PHP. Cette page PHP serait le contrôleur souhaité, et effectuer les actions demandées.

L'existence d'une méthode prédéfinie dépend du framework PHP que vous utilisez (le cas échéant).

+0

cadre @pekka codiegniter est utilisé par moi .. –

+0

@pekka regarder mon .. modifier –

+0

@chandru Je ne sais pas assez à propos de CI pour vous dire comment configurer le fichier pour une demande AJAX J'ai bien peur, mais je suis à peu près sûr qu'il y a un moyen intégré pour cela. –

0

si vous avez déjà votre view/bookdetials.php Ensuite, tout ce dont vous avez besoin est (au lieu de votre code javscript):

Ajouter div quelque part sur la page comme ceci:

<div id="ajax-palaceholder"></div> 

puis ajoutez ce code javascript :

<script type="text/javascript"> 
$(document).ready({ 
    $('#ajax-palaceholder').load('http://localhost/codeigniter_cup_myth_new/index.php/libraryController/loadbookdetails'); 
}); 
</script> 

Cela fera une requête ajax sur le chargement de la page, puis mettre le contenu chargé dans div#ajax-palaceholder

1

Pour PHP> = 5.2.0, vous pouvez utiliser json_encode(). Votre code ressemblerait à ceci:

$this->load->view('bookdetails', json_encode($data)); 

Une bonne collection de références sur CodeIgniter + AJAX peut être trouvé here.

0

La requête Ajax doit entrer en contact avec le script PHP. Ce script doit renvoyer des données. Vous utilisez JSON comme format de réponse:

dataType: "json", 

Donc, pour votre seul exemple de script sous forme de sortie doivent être JSON. Et ça ne peut pas être autre chose que json.

Votre script Serwer (vue de bookdetials) ressemblera:

//Initialise data 
    $bookdetails = ... 
    // json encode data 
    echo json_encode($bookdetails); 
    // make sure nothing else go to the output 
    ??? 

??? - dépend du système. Habituellement, vous devrez bloquer pagelayout ici.

JSON comme réponse est agréable mais pour la plupart des cas HTML est enought ...

Questions connexes