Ajax et fonctions
Résolu
ben85350
Messages postés
622
Statut
Membre
-
ben85350 Messages postés 622 Statut Membre -
ben85350 Messages postés 622 Statut Membre -
Bonjour à tous !
Je travaille actuellement sur une application existante qui utilise PHP et Ajax principalement. Au niveau du PHP, pas de problème, mais pour l'Ajax je débute juste. J'aimerais donc avoir un petit coup de main. Voila le code que j'essaie de comprendre :
Dans ma page j'ai un bouton avec supprimerCommande("le numero"). Le fichier js est bien appelé, mais il ne va pas dans le fichier supprimerCommande.php. La redirection se fait bien vers listeToutesCommandes.php.
Merci pour votre coup de main.
Je travaille actuellement sur une application existante qui utilise PHP et Ajax principalement. Au niveau du PHP, pas de problème, mais pour l'Ajax je débute juste. J'aimerais donc avoir un petit coup de main. Voila le code que j'essaie de comprendre :
function supprimerCommande(noCommande) {
$.ajax({
type:"POST",
url:"_vue/commandes/supprimerCommande.php",
data:{commande : noCommande},
success:function() {
$("#toutesCommandes").load("_vue/commandes/listeToutesCommandes.php");
}
});
}
Dans ma page j'ai un bouton avec supprimerCommande("le numero"). Le fichier js est bien appelé, mais il ne va pas dans le fichier supprimerCommande.php. La redirection se fait bien vers listeToutesCommandes.php.
Merci pour votre coup de main.
A voir également:
- Ajax et fonctions
- Fonction si et - Guide
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Fonctions excel en anglais - Guide
- Fonctions excel - Guide
- Libreoffice calc fonction si et ou - Forum Bureautique
6 réponses
Bonjour,
as tu compris le principe d'Ajax ?
Pour ton exemple le javascript appelle la page supprimerCommande.php,
avec la méthode POST (comme s'il s'agissait d'un formulaire) et lui passe en paramètre "commande" avec la valeur noCommande.
Pour voir ce qui se passe lorsque tu fais ton appel, je te conseille d'installer "FireBug" l'extension FireFox (et Chrome) pour débugger html et javascript.
le paramètre "success" est la fonction qui est appelé si l'appel ajax se fait correctement, donc si tu nous dis que la redirection se fait bien sur listeToutesCommandes.php, c'est que l'appel c'est bien passé.
En espérant que tu comprends mieux la mécanique ^^
Si tu as des questions n'hésite pas, mais encore une fois je te conseille d'installer FireBug.
as tu compris le principe d'Ajax ?
function supprimerCommande(noCommande) {
$.ajax({
type:"POST",
url:"_vue/commandes/supprimerCommande.php",
data:{commande : noCommande},
success:function() {
$("#toutesCommandes").load("_vue/commandes/listeToutesCommandes.php");
}
});
}
Pour ton exemple le javascript appelle la page supprimerCommande.php,
avec la méthode POST (comme s'il s'agissait d'un formulaire) et lui passe en paramètre "commande" avec la valeur noCommande.
Pour voir ce qui se passe lorsque tu fais ton appel, je te conseille d'installer "FireBug" l'extension FireFox (et Chrome) pour débugger html et javascript.
le paramètre "success" est la fonction qui est appelé si l'appel ajax se fait correctement, donc si tu nous dis que la redirection se fait bien sur listeToutesCommandes.php, c'est que l'appel c'est bien passé.
En espérant que tu comprends mieux la mécanique ^^
Si tu as des questions n'hésite pas, mais encore une fois je te conseille d'installer FireBug.
Merci pour cette réponse rapide. Oui FireBug est déjà installé depuis un petit moment. En effet, la redirection se fait bien sur listeToutesCommandes.php mais pour voir si tout se passais bien, j'ai fait un alert() dans supprimerCommande.php, mais je n'ai aucun retour, de plus cette page supprimer la commande voulu de la base, et après utilisation, rien ne se passe.
Il me semble que tu utilises Jquery pour ton Ajax, dans ce cas modifie ta fonction onsucces pour y ajouter un alert de ce que tu recois de ta page php :
JAVASCRIPT :
PAGE AJAX (supprimerCommande.php)
Tu devrais avoir un alert avec "Hello world" quand tu cliques sur ton bouton.
(Sous firebug regarde les pages appelées dans l'onglet console).
JAVASCRIPT :
function supprimerCommande(noCommande) {
$.ajax({
type:"POST",
url:"_vue/commandes/supprimerCommande.php",
data:{commande : noCommande},
success:function(data) {
alert('resultat : "'+data+'"');
//$("#toutesCommandes").load("_vue/commandes/listeToutesCommandes.php");
}
});
}
PAGE AJAX (supprimerCommande.php)
<?php echo "Hello world !"; ?>
Tu devrais avoir un alert avec "Hello world" quand tu cliques sur ton bouton.
(Sous firebug regarde les pages appelées dans l'onglet console).
alors, j'ai essayé ce que tu m'as dit et :
- je n'ai pas de alert avec "Hello world"
- en fait la redirection ne fonctionnais pas, en changeant listeToutesCommandes.php en listeToutes.php par exemple, rien ne change.
pas contre si je fait
j'ai bien le alert "test" Je ne comprends pas... ça viens alors du data ?
- je n'ai pas de alert avec "Hello world"
- en fait la redirection ne fonctionnais pas, en changeant listeToutesCommandes.php en listeToutes.php par exemple, rien ne change.
pas contre si je fait
function supprimerCommande(noCommande) {
$.ajax({
type:"POST",
url:"_vue/commandes/supprimerCommande.php",
data:{commande : noCommande},
success:function(data) {
alert('test ');
//$("#toutesCommandes").load("_vue/commandes/listeToutesCommandes.php");
}
});
}
j'ai bien le alert "test" Je ne comprends pas... ça viens alors du data ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait "data" correspond à ce que va renvoyer la page php-ajax.
Si tu fais alert('test'), c'est normal que ça l'affiche puisque 'test' est une chaine en dur.
Que la redirection ne marche plus c'est normal aussi car "//" veut dire que la ligne est commenté (du coup forcément c'est pas interprété ^^).
Si data, marche pas c'est que tu es pas sur JQuery :p, ou alors que ta page php-ajax ne renvoit rien.
As-tu regardé dans l'onglet console de FireBug ce qui se passe quand tu cliques sur ton bouton ?
Si tu fais alert('test'), c'est normal que ça l'affiche puisque 'test' est une chaine en dur.
Que la redirection ne marche plus c'est normal aussi car "//" veut dire que la ligne est commenté (du coup forcément c'est pas interprété ^^).
Si data, marche pas c'est que tu es pas sur JQuery :p, ou alors que ta page php-ajax ne renvoit rien.
As-tu regardé dans l'onglet console de FireBug ce qui se passe quand tu cliques sur ton bouton ?
Voila ce que me dit la console :
Dans l'onglet réponse j'ai bien "Hello world !"
mais j'ai l'erreur suivante après :
Que la redirection ne marche plus c'est normal aussi car "//" veut dire que la ligne est commenté (du coup forcément c'est pas interprété ^^).
Elle ne marchais pas avant non plus en fait, je pensais que ca fonctionnais mais non.
POST ..../_vue/commandes/supprimerCommande.php 200 OK 84ms
Dans l'onglet réponse j'ai bien "Hello world !"
mais j'ai l'erreur suivante après :
data is not defined
alert('resultat : "'+data+'"');
Que la redirection ne marche plus c'est normal aussi car "//" veut dire que la ligne est commenté (du coup forcément c'est pas interprété ^^).
Elle ne marchais pas avant non plus en fait, je pensais que ca fonctionnais mais non.
J'ai ceci dans mon fichier index, je pense que c'est ça ce que tu me demande :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> // fichier contenant mes différentes fonctions <script type="text/javascript" src="_vue/js/function.js"></script> <script type="text/javascript" src="_vue/js/ajaxupload.js"></script>
Tu as des exemples d'utilisation ici :
https://api.jquery.com/jQuery.ajax/
Mais je trouve ça étrange que "data" ne soit pas reconnue...
La syntaxe parait OK...
https://api.jquery.com/jQuery.ajax/
Mais je trouve ça étrange que "data" ne soit pas reconnue...
La syntaxe parait OK...