Requête SQL en 1 clic sans recharger la page
Résolu
kisscool73
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
kisscool73 Messages postés 79 Date d'inscription Statut Membre Dernière intervention -
kisscool73 Messages postés 79 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Requête SQL en 1 clic sans recharger la page
- Supprimer page word - Guide
- Mettre google en page d'accueil - Guide
- Word numéro de page 1/2 - Guide
- Traduire une page en français - Guide
- Imprimer tableau excel sur une page - Guide
5 réponses
Merci jordane45.
Mais le projet ne fonctionne pas !
J'ai copier le content du zip sur mon serveur, j'ai créé la BDD avec les tables, j'ai configuré le fichier config et modifier l'url root dans le fichier monFichierAjax.ajx.php, et j'ai lancé l'index.
Mais j'ai des erreurs sur la page qui rend le projet inutilisable.
Dommage !
Je vais essayé de lire directement dans les fichiers peut être que je trouverai ce que je cherche.
Mais le projet ne fonctionne pas !
J'ai copier le content du zip sur mon serveur, j'ai créé la BDD avec les tables, j'ai configuré le fichier config et modifier l'url root dans le fichier monFichierAjax.ajx.php, et j'ai lancé l'index.
Mais j'ai des erreurs sur la page qui rend le projet inutilisable.
Dommage !
Je vais essayé de lire directement dans les fichiers peut être que je trouverai ce que je cherche.
J'ai mis :
Et j'ai fais pareil pour les URL des .css et .js dans le fichier index
Et voici à quoi ressemble l'index :
http://www.image-heberg.fr/files/1525285344648855966.png
$dirSite = "http://www.monsite.com/rep1/monsite/";
Et j'ai fais pareil pour les URL des .css et .js dans le fichier index
Et voici à quoi ressemble l'index :
http://www.image-heberg.fr/files/1525285344648855966.png
Déjà... avec le script que je t'ai donné tu as forcément quelquechose....
Il faut juste savoir regarder.
Si tu utilises CHROME tu dois installer le plugin https://chrome.google.com/webstore/detail/ajax-debugger/lgfefckpdealogpcfjdhinecfbcgedam
Une fois que ça sera fait, lorsque tu vas faire une requête AJAX, tu pourras voir dans la console (dans l'onglet network) le résultat.
Par exemple :

Perso, pour debuguer l'ajax, je préfère largement utiliser firefox.

Ensuite, concernant le fait que tu aies encore une erreur... c'est normal.
Tu as oublié de fermer une accolade et tu mélanges du mysql_ avec du mysqli->
Bref:
Il faut juste savoir regarder.
Si tu utilises CHROME tu dois installer le plugin https://chrome.google.com/webstore/detail/ajax-debugger/lgfefckpdealogpcfjdhinecfbcgedam
Une fois que ça sera fait, lorsque tu vas faire une requête AJAX, tu pourras voir dans la console (dans l'onglet network) le résultat.
Par exemple :

Perso, pour debuguer l'ajax, je préfère largement utiliser firefox.

Ensuite, concernant le fait que tu aies encore une erreur... c'est normal.
Tu as oublié de fermer une accolade et tu mélanges du mysql_ avec du mysqli->
Bref:
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //initialisation de la variable de retour $result = array(); //connexion à la bdd $mysqli = new mysqli('mysql5-10.pro', 'XXXXXXX', 'XXXXXXX', 'XXXXXXX'); if($mysqli->connect_error) { $result['erreur'] = 'Erreur de connexion (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error; } //récupération PROPRE des variables AVANT de les utiliser $sid = !empty($_POST['id']) ? $_POST['id'] : NULL; if ($sid){ $sql = "UPDATE base_gallery SET coeur = coeur+1 WHERE sid = '".$sid."'"; $upd = $mysqli->query($sql); if (!$upd) { $result['erreur'] = "Message d'erreur : %s\n", $mysqli->error); }else{ $result['success'] = $upd; } } //on retourne au format json le resultat echo json_encode($result);
Merci,
Pour le mélange entre mysql_ et mysqli-> j'avais vu, et j'ai modifier mon message, mais tu avais dû déjà le lire.
Parcontre, j'avais pas vu l'accolade, et maintenant ça fonctionne si j'ajoute l'accolade qui manque, mais j'ai un message "pareserror".
Et si j'utilise le code de ton dernier message, ça marche plus, et j'ai de nouveau la même erreur 500.
Et j'ai installé l’extension de chrome comme tu me l'avais dis, mais ya jamais rien dans la console network.
Pour le mélange entre mysql_ et mysqli-> j'avais vu, et j'ai modifier mon message, mais tu avais dû déjà le lire.
Parcontre, j'avais pas vu l'accolade, et maintenant ça fonctionne si j'ajoute l'accolade qui manque, mais j'ai un message "pareserror".
Et si j'utilise le code de ton dernier message, ça marche plus, et j'ai de nouveau la même erreur 500.
Et j'ai installé l’extension de chrome comme tu me l'avais dis, mais ya jamais rien dans la console network.
Vu que dans mon code j'en ai mis....
Si tu continus à avoir ce message d'erreur cela signifie que ton code php retourne une erreur...
As tu biens pris mon code ?
Dans ton JS, fais:
les console.log dans le .fail devraient t'afficher plus d'infos dans la console de ton navigateur.
Si tu continus à avoir ce message d'erreur cela signifie que ton code php retourne une erreur...
As tu biens pris mon code ?
Dans ton JS, fais:
function showUser(sid){ var data = {id:sid }; $.ajax({ type: "POST", url: 'modules/Gallery/vote.ajx.php', data: data, async: true, dataType: "json" }) .done(function(reponse){ console.log(reponse); }) .fail(function(jqXHR, textStatus){ console.log(textStatus); console.log(jqXHR); alert(textStatus); }); }
les console.log dans le .fail devraient t'afficher plus d'infos dans la console de ton navigateur.
ah ben c'est bon, j'ai supprimé la ligne dataType: "json" du fichier vote.js
Et plus d'erreur tout fonctionne parfaitement MERCI :)
Si tu as été obligé de faire ça... peut-être que ça "marchouille...." mais ce n'est pas la meilleur solution.
Si tu as du json parse failed .. c'est que ton code dans ton fichier vote.ajx.php retourne du text qu'il ne devrait pas....
La seule façon de le savoir est d'ajouter les console.log que je t'ai indiqué et de nous dire ce qu'ils t'affichent exactement.
Le plus souvent c'est lié à des erreurs dans le code php (parfois juste des warning ou des notice )
Il faudrait aussi nous montrer le code que tu as réellement utilisé dans ton fichier vote.ajx.php ... j'ai l'impression que tu n'as pas pris le mien.
Pour ton autre question... sache qu'ici il est préférable de ne poser qu'une question par discussion.
Ca permet, à d'autres visiteurs, de pouvoir chercher/trouver des réponses à leurs propres questions pour peu que ton souci soit équivalent au leur.
De toutes façons, le code
$(this).prop('src','modules/Gallery/images/coeur2.png')serait a placer là où je t'avais mis le texte
//ici tu peux éventuellement coder le changement // de couleur de ton bouton... //....
C'est à cet endroit précis que tu dois exécuter une action SI (et seulement si) ton code a fonctionné.
Sinon, là où tu l'as mis c'est exécuté systématiquement....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour ceux qui peuvent avoir besoins, voici les sources final simplifier :
Dans le fichier PHP de la page :
Le fichier modules/Gallery/vote.js
Et le fichier modules/Gallery/vote.ajx.php
J’espère que j'ai rien oublié.
Dans le fichier PHP de la page :
echo "<script type=\"text/javascript\" src=\"modules/Gallery/jquery-3.3.1.js\"></script>"; echo "<script type=\"text/javascript\" src=\"modules/Gallery/vote.js\"></script>"; echo "<a href='javascript:void(0)' onclick='showUser($sid);'>like</a>";
Le fichier modules/Gallery/vote.js
function showUser(sid){ var data = {id:sid }; $.ajax({ type: "POST", url: 'modules/Gallery/vote.ajx.php', data: data, async: true, }) .done(function(reponse){ console.log(reponse); //ici tu peux éventuellement coder le changement // de couleur de ton bouton... //.... }) .fail(function(jqXHR, textStatus){ alert(textStatus); }); }
Et le fichier modules/Gallery/vote.ajx.php
<?php $sid = !empty($_POST['id']) ? $_POST['id'] : NULL; $mysqli = new mysqli('localhost', 'user', 'password', 'name'); if($mysqli->connect_error) { die('Erreur de connexion (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } if ($sid) { $mysqli->query("UPDATE votre_table SET coeur = coeur+1 WHERE sid = '".$sid."'"); } ?>
J’espère que j'ai rien oublié.
En gros... tu n'as tenu compte d'aucun de mes codes .........
- Il n'y as pas les console.log dans le fail de ton js
- Tu ne gères pas les éventuelles erreurs de requêtes dans ton fichier ajax.php
- Tu n'a pas mis le changement d'image dans le done du JS
Sans compter que tu ne répondais que partiellement aux questions que je te posais....
Bref... Désormais je passe mon tour .....
Bonne chance pour la suite....
- Il n'y as pas les console.log dans le fail de ton js
- Tu ne gères pas les éventuelles erreurs de requêtes dans ton fichier ajax.php
- Tu n'a pas mis le changement d'image dans le done du JS
Sans compter que tu ne répondais que partiellement aux questions que je te posais....
Bref... Désormais je passe mon tour .....
Bonne chance pour la suite....
Je suis vraiment désolé, pourtant je t'ai dis que le code du fichier vote.ajx.php que tu avais modifié ne fonctionnait pas alors que l'autre avec l'accolade qui manquait fonctionné, j'ai donc pensais évident de conserver celui qui fonctionnait.
Bref, dans tous les cas merci beaucoup pour ton aide.
Et désolé d'avoir laissé plané un climat d'incompréhension, c'été pas mon intention.
Bref, dans tous les cas merci beaucoup pour ton aide.
Et désolé d'avoir laissé plané un climat d'incompréhension, c'été pas mon intention.
pour tes prochains codes, pense à lire et à appliquer ceci
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code