Appel d'une fonction PHP avec Ajax

Petit nouveau ! | 1 Messages

29 sept. 2013, 18:33

Bonjour,
J'ai exceptionnellement besoin d'utiliser Ajax sur une page de mon site, mais je connais très mal ce langage.
J'ai une fonction en php et j'aimerais que cette fonction soit exécutée lorsque l'utilisateur clique sur un lien/bouton, sans quitter la page actuelle.
Pour ce faire, j'ai crée un fichier contenant ma fonction php et j'ai inscrit sur ma page principale le code suivant :

<a class="appel_fonction" href="adresse_du_fichier_fonction.php">Texte</a>
<div id="réponse_fonction"><!-- Ce texte est remplacé par la réponse de la fonction appelée --></div>
[javascript]<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.appel_fonction').click(function(){
var url = $(this).attr('href');
$('#réponse_fonction').load(url);
return false;
});
});[/javascript]

Néanmoins, un problème se pose : la page est bel et bien inclue grâce à ce code mais lorsque la fonction s'exécute, elle ne reconnait pas les variables que j'avais déclaré plus haut dans la page principale ; c'est comme si les deux pages étaient complètement séparées. C'est problématique.

C'est pourquoi je m'adresse à vous pour vous demander s'il n'existerait pas une solution.
Et par ailleurs, est-il possible de n'inclure dans la page qu'un extrait du fichier fonction.php qui correspond à une fonction. C'est à dire que, si j'ai 10 fonctions php les unes à la suite des autres et que je clique sur un certain lien 1, ce dernier appelle la fonction 1 du fichier.

Ai-je manqué de clarté ?
Merci grandement à vous,
Cordialement,

ViPHP
ViPHP | 3607 Messages

30 sept. 2013, 22:49

Bonsoir,
c'est comme si les deux pages étaient complètement séparées. C'est problématique.
Ce n'est pas qu'une impression, c'est complètement normal.
C'est effectivement une nouvelle page qui appelée, un peu comme si elle était affichée directement dans le navigateur.
Pour tes tests tu peux te rendre directement sur "adresse_du_fichier_fonction.php" via ton navigateur et c'est ce résutlat que tu obtiendras via l'appel ajax.

Si tu as besoin de variables provenant de la page appelante, il faut els faire passée à la page appelée.
Il y a plusieurs solution, la plus simple étant de faire passer en GET ou en POST les variables en question.

Cela donnerait :
[javascript]$(document).ready(function(){
$('.appel_fonction').click(function(){
var url = $(this).attr('href');
$.get(url,{variable1:'valeur1',variable2:'valeur2',variable3:'...'},function(data){
$('#réponse_fonction').html(data);
});

return false;
});
});[/javascript]

+ d'informations ici : http://api.jquery.com/jQuery.get/

Cordialement,