Execution de requetes SQL via Ajax
12 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Execution de requetes SQL via Ajax
Bonjour à tous,
Voila, j'essaye de mettre à jour un champ dans une table de ma BDD.
En gros, lorsque l'utilisateur clique sur un bouton, le champ (int) de la Table doit s'incrémenter de +1.
Pour ce faire, j'essaye (je dit bien j'essaye!
) d'utiliser Ajax.
Donc voila ou j'en suis:
Dans mon code PHP, le lien sur lequel j'appelle une fonction JavaScript:
($Rea_Num est le numéro du commentaire à recommander)
La Fonction appelée lors du click:
Et mon script "Recommander.php":
Donc voila, je ne sais pas si mon code est bon, je n'ai pas d'erreur dans la Console, mais apparemment la requête ne s'exécute pas puisque le champ de la table n'est pas mis à jour.
Si quelqu'un peut m'éclairer, je débute en Ajax
Merci!
Voila, j'essaye de mettre à jour un champ dans une table de ma BDD.
En gros, lorsque l'utilisateur clique sur un bouton, le champ (int) de la Table doit s'incrémenter de +1.
Pour ce faire, j'essaye (je dit bien j'essaye!
Donc voila ou j'en suis:
Dans mon code PHP, le lien sur lequel j'appelle une fonction JavaScript:
($Rea_Num est le numéro du commentaire à recommander)
- Code: Tout sélectionner
<a href=\"#Comm_$Rea_Num\" id=BoutonPlus class=BulleValid onclick=\"RecoReac('$Rea_Num')\";>
<span>Recommander ce commentaire</span>
</a>
La Fonction appelée lors du click:
- Code: Tout sélectionner
function RecoReac(NumReac){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", "Recommander.php", true);
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "NUMREAC="+NumReac;
xhr_object.send(data);
}
Et mon script "Recommander.php":
- Code: Tout sélectionner
<?php
header('Content-type: text/html; charset=iso-8859-1');
INCLUDE_ONCE("Script.php");
//On récupere le numéro du commentaire à recommander
$NumReac=$_POST['NUMREAC'];
//On augmente le nombre de recommandations.
//Requete:
$Req="UPDATE `reactions`
SET `Rea_Reco` =Rea_Reco+1
WHERE `Rea_Num` =$NumReac;" ;
//on exécute la requete
Requete($Req, $G_Pointeur);//Exécution de la requete
?>
Donc voila, je ne sais pas si mon code est bon, je n'ai pas d'erreur dans la Console, mais apparemment la requête ne s'exécute pas puisque le champ de la table n'est pas mis à jour.
Si quelqu'un peut m'éclairer, je débute en Ajax
Merci!
Salut et merci de ta réponse rapide!
Firebug? Je ne connais pas, je vais tester!
Pour l'idée des print_r($_POST), je fait un echo des données en POST, et cela n'affiche rien...
En fait lorsque je clique sur le lien je reste sur la même page.
Sinon mon code semble correct?
EDIT: Je viens de tester Firebug... Nikel ce petit truc, merci!
J'ai une ligne d'erreur dans l'onglet réseau:
POST Recommander.php
[mon site]/Articles/Recommander.php
404 Not Found
Je pense voir d'où cela vient, je regarde et te redis.
Firebug? Je ne connais pas, je vais tester!
Pour l'idée des print_r($_POST), je fait un echo des données en POST, et cela n'affiche rien...
En fait lorsque je clique sur le lien je reste sur la même page.
Sinon mon code semble correct?
EDIT: Je viens de tester Firebug... Nikel ce petit truc, merci!
J'ai une ligne d'erreur dans l'onglet réseau:
POST Recommander.php
[mon site]/Articles/Recommander.php
404 Not Found
Je pense voir d'où cela vient, je regarde et te redis.
Dernière édition par ygalr22 le Lun Nov 03, 2008 17:56, édité 1 fois.
Ok, ca marche à moitié depuis que j'ai apporté une petite modification:
Dans le code Javascript apres la ligne "xhr_object.open("POST", "../Script/Recommander.php", true);" :
La mise à jour du champ de la table se fait bien, mais pour que la modification soit visible pour l'utilisateur celui-ci doit recharger la page...
J'aimerais que cela ce fasse automatiquement, comment faire?
Dans le code Javascript apres la ligne "xhr_object.open("POST", "../Script/Recommander.php", true);" :
- Code: Tout sélectionner
xhr_object.onreadystatechange = function anonymous() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}
La mise à jour du champ de la table se fait bien, mais pour que la modification soit visible pour l'utilisateur celui-ci doit recharger la page...
J'aimerais que cela ce fasse automatiquement, comment faire?
-

UsagiYojimbo - WRInaute accro

- Messages: 5185
- Inscription: Mer Nov 23, 2005 10:38
Bein une fois l'enregistrement fait, tu réactualises la div qui affiche ton compteur (cf propriété JS innerHTML).
-

UsagiYojimbo - WRInaute accro

- Messages: 5185
- Inscription: Mer Nov 23, 2005 10:38
Bein oui si t'as div possède un id unique, tu peux tout à fait ne modifier que le contenu de celle-ci.
-

UsagiYojimbo - WRInaute accro

- Messages: 5185
- Inscription: Mer Nov 23, 2005 10:38
En quoi cela t'obligerait t'il à rééxécuter des requêtes ? Il te suffit de récupérer, lors de l'appel à ta fonction php qui met à jour ta table, la valeur a laquelle cette table a été mise à jour, et d'afficher cette valeur dans ta div.
Re!
Je serait obligé de (ré)exécuter certaines requêtes car le fait de modifier la donnée en Ajax, modifie toute une partie de ma page est changée, donc elle doit être rechargée.
(ce qui est faisable avec ajax, mais plus fastidieux qu'un simple reload)
Enfin dites moi si je me trompe, peut être mon problème est très (trop?) spécifique.
Je serait obligé de (ré)exécuter certaines requêtes car le fait de modifier la donnée en Ajax, modifie toute une partie de ma page est changée, donc elle doit être rechargée.
(ce qui est faisable avec ajax, mais plus fastidieux qu'un simple reload)
Enfin dites moi si je me trompe, peut être mon problème est très (trop?) spécifique.
Non c'est plutôt générique.
Le plus simple : appeller un script PHP qui te retourne le HTML à intégrer à ta page.
Tu récupère le "text" de ton appel Ajax et tu le mets dans le innerHTML de ta div.
Et ça tu peux le faire après la MAJ dans ta table, donc tout en un.
Le plus simple : appeller un script PHP qui te retourne le HTML à intégrer à ta page.
Tu récupère le "text" de ton appel Ajax et tu le mets dans le innerHTML de ta div.
Et ça tu peux le faire après la MAJ dans ta table, donc tout en un.
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement et Web 2.0
- Google Web Toolkit, pour créer des applications en AJAX
- Yahoo Maps API
- Google rejoint le projet Open AJAX créé par IBM
- Fin de l'API Google Search SOAP
- Définition(s) du Web 2.0
- Google ferme l'API SOAP aux nouveaux développeurs
- Optimisation du référencement d'un site en AJAX
- Ajouter un moteur de recherche d'images sur son site
- Suggestions de requêtes dans Google News
- requêtes sql
- Pb requètes SQL
- 3 requêtes SQL en une
- Réduire le nombre de requêtes sql
- Requetes SQL : solution la plus rapide ?
- Benchmark de ses requetes SQL
- Nombre de requetes sql et hebergement ?
- Problème de liens / requêtes SQL
- Réunir 8 requetes sql en une seule
- Requetes SQL sur serveur distant
- Faire 2 requetes sql en une seule
- MySQL : optimisation des requêtes sql
- Complètement perdut dans des requètes sql !
- Comment PHPBB sécurise les requêtes SQL ?
- optimisation de temps de reponse des requetes sql
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit, Google Trends Recherche Personnalisée
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum