2010-11-12 5 views
0

J'ai une liste déroulante que je veux remplir par jquery. Le problème que je suis confronté est que je veux appeler une fonction de classe directement à partir de jquery. par exemple Ma classe PHP class_function contient la fonction get_locations. comment puis-je appeler cette fonction get_locations en utilisant la méthode jquery .post sans introduire une troisième page?appelez les fonctions de classe php à travers jquery

Répondre

4

La façon dont je le fais habituellement est d'avoir une instruction if au haut de la page php vérifiant un mode spécial.

jquery

$.get(
    'page.php?mode=ajaxGetLocations&someVar=' + $('#someVar').val(), 
    function(data) { $('#myDropDown').html(data); } 
); 

PHP - à proximité du haut du code

<?php 
if (isset($_REQUEST['ajaxGetLocations']) 
{ 
    $someVar = $_REQUEST['someVar']; 
    // Get your data here 

    // Output your select box here 
    ?> 
    <select> 
    ... 
    </select> 
    <?php 
    exit; // You don't want to keep processing the page 
} 
?> 
0

Vous ne pouvez pas, car jQuery et PHP s'exécutent dans des environnements entièrement différents - PHP sur le serveur, jQuery sur le client. jQuery s'exécute après que PHP soit terminé.

Vous voulez regarder dans jQuery's Ajax functions pour savoir comment appeler un script PHP à partir de Javascript.

1

Demandez à votre page PHP mis à jour avec

if (isset($_GET['get_locations'])) { 
    echo $this->get_locations(); 
    return; 
} 

et l'appeler de jQuery avec

$.ajax({ 
//.. 
data: "get_locations=1", 
//... 
}); 
0

Ajax est utilisé pour faire une requête HTTP à partir du navigateur, en utilisant JavaScript, sans quitter la page. donc vous ne pouvez pas appeler une fonction de classe directement ... mais vous pouvez le gérer en autorisant le constructeur à appeler cette fonction en fonction des paramètres que vous avez passés

Questions connexes