Recuperé le GET dans l'url. dans page html
Résolucomment puis-je recuperé le GET dans l'url en specifiant l'URL.
comment on fait ca j'ai chérché mais rien.
25 réponses
La question centrale porte sur comment récupérer un paramètre GET dans l'URL avec PHP et comment l'envoyer côté serveur via AJAX lorsqu'un identifiant d'article est requis. Des échanges soulignent qu'il faut aligner le nom de la donnée envoyée en AJAX (data: {id: id_article}) avec la clé côté PHP ($_POST['id'] ou $_GET['id']), faute de quoi rien n'arrive. En parallèle, des conseils mentionnent de ne pas s'appuyer sur l'URL pour passer tout, de vérifier le chemin et les fichiers (article_info.php) et de tester l'envoi avec des valeurs fixes. D'autres proposent de clarifier les pages et l'architecture (index et article), et de récupérer le reste des données depuis la base si nécessaire plutôt que de tout transmettre dans l'URL.
-
ecoute je suis vraiment dsl de tavoir derangé autant :)
mais j'y suis arrivé j'ai modifier ton code un peu.
et j'ai enlevé test.affichage.js.
ouffffffffff -
dans le fichier article_info.php la condition:
if(!$id){ echo json_encode(array('ERREUR'=>'ID non envoyé !', 'POST'=>$_POST)); // Erreur corrigée ici exit; }
est executé puis ca fait exit et tous le code suivant n'est pas executé.
https://forums.commentcamarche.net/forum/affich-36664778-recupere-le-get-dans-l-url-dans-page-html?page=1#55-
-
@jordane45voici mon code test actuelle: ces bien lui ?
$.ajax({ url: "article_info.[https://www.commentcamarche.net/php/phpintro.php3 php]", type: 'POST', dataType:'json', success: function(article_info) { var date=document.getElementById("date_article"); var src=document.getElementById("img_article"); var edition=document.getElementById("edition_article"); date.innerHTML=article_info[0][0]; edition.innerHTML ="Edition N°"+article_info[0][2]+" Le Babezien"; src.src=article_info[0][3]; },error: function(err){ console.log('Erreur Ajax affichage',err); } });
et esceque tu peux envoyer une capture d'ecran de t'es réponse dans la console. car moi j'ai 2 post qui proviennent de article_info.php.
et ces dommage que php soit aussi chiant pour recevoir une variable. -
-
-
ModérateurBon...
Tu avais des erreurs dans ton code html.
Des balises mal placées, d'autres non fermées...
Bref,
Ton fichier article.html une fois corrigé devient:<!Doctype html> <html lang='en' > <head> <meta charset="UTF-8" /> <title> Le babezien </title> <link rel="stylesheet" href="design.css" > <link rel="shortcut icon" href="babezien2.png"> </head> <body id="body"> <header style="background-image: url('usthb.jpg');"> <center> <img id="icone" src="le babezien.jpg"> </center> </header> <nav id="nav" > <a href="index.html" class="navchoice" id="nav1"><b>ACCUEIL</b> </a> <a href="ARTICLE.html" class="navchoice" id="nav2"><b>NOS ARTICLE</b></a> <a href="" class="navchoice" id="nav3"><b>CONTACT</b></a> <a href="" class="navchoice" id="nav4"><b>INFO</b></a> </nav> <article > <center> <div class="presontArt"> <p class="gauche" ><b id="edition_article"></b></p> <div style="display: flex;height: 1%;margin-top: 2.1%;" class="droite" ><p id="date_article" style="margin: 0px;"> </p> <img id="timeArt" src="time.jpg"> </div> </div> <figure style="margin: 0px;"> <img id="img_article" class="ilsr" style="margin-top: 0%;" src="" > </figure> </center> <div style="float: right; width: 90px;display: flex;justify-content: center;"> <img src="fléche-gauche.png" class="article_nav" id="page_prec"> <img src="fléche-droite.png" class="article_nav" id="page_suiv"> </div> <a href="" style="margin-left:5px;margin-right: 80%;background-color: rgba(90,90,90);color: white;text-decoration: none;display: inline-block;">telecharger le pdf </a> <p style="margin-left: 5px;background:rgba(1,1,1,0.2);border-radius: 20px;display: inline-block;">AJOUTER UN COMMENTAIRE:</p> <div class="encadrageCommentaire"> <form action="INSERT_COMMENTAIRE.php" method="post"> <div class="commentaire"><div class="label_commentaire"><label for="fname">nom:</label></div> <input type="texte" name="nom" id="nom" placeholder="Entrez votre nom" required></div> <div class="commentaire"><div class="label_commentaire" placeholder="entré vote nom" required><label for="age">age:</label></div> <input id="age" type="number" name="age" pattern="[5-100]" placeholder="Entrez votre age" required></div> <div class="commentaire"><div class="label_commentaire"><label for="commentaire">commentaire:</label></div> <input id="commentaire" style="" type="text" name="le_commentaire" maxlength="200" placeholder="Entrez un commentaire" required></div> <input style="background:rgba(1,1,1,0.2);width: 12%;margin-left: 85%; border-radius:0 0 5px 0;word-wrap: break-word;" type="submit" name="valider"> </form> </div> <p href="" style="margin-left: 6px;background:rgba(1,1,1,0.2);border-radius: 20px;display: inline-block;">ESPACE COMMENTAIRE: </p> <div id="VOS COMMENTAIRE" class="encadrageCommentaire"> </div> </article> <aside> </aside> <footer > <div class="LigneHonrizontalFooter" ></div> <div style="display: flex;padding-top: 10px;justify-content: center; border-height:40px; "> <p><b>SUIVEZ Le Babezien</b></p> <a onclick="clickdesign(this)" href="https://www.facebook.com/Le-babezien-104889507687360/?__tn__=%2Cd%2CP-R&eid=ARC0wVBmgp6HR37Lc_GMHCaHVkq8l3GSztM-1JFCEA9yPn8KDTcS6ikhW4si7-1a1Cdr-B1slTl1QQpV"><img src="footer-icon-facebook.png"><p> facebook</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-youtube.png"><p> youtube</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-instagram.png"><p> instagram</p></a> </div> </footer> <script type="text/javascript" src="jquery-3.5.1.js"></script> <script src="script_info_article.js"></script> <script src="le babezien.js"></script> </body> </html>
J'ai ensuite retravaillé un peu le fichier js : script_info_article.jsfunction getGET(param){ var vars = {}; window.location.href.replace( location.hash, '' ).replace( /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp function( m, key, value ) { // callback vars[key] = value !== undefined ? value : ''; } ); if ( param ) { return vars[param] ? vars[param] : null; } return vars; } function getArtcile(){ var id_article= getGET('id_article'); console.log(id_article); $.ajax({ url: "article_info.php", type: 'POST', dataType: 'json', data :{id:id_article}, success: function(response){ console.log("Reponse AJAX", response); if(typeof(response)!="undefined" && response!=null){ var ERREUR = typeof(response.ERREUR)!="undefined" ? response.ERREUR : null; if(ERREUR){ //Si il y a une erreur.. alert(ERREUR); }else{ //on boucle sur les résultats retournés par le script php $.each(response,function(i,el){ console.log(i,el); //ici on mettra le code pour faire l'affichage... //... }); } } },error:function(err){ console.log("Erreur Ajax",err); } }); } //on attend que la page soit chargée avant de lancer le code $(document).ready(function(){ getArtcile(); });
Il faut bien penser à renommer tes fichiers tel que je te l'ai indiqué
donc, tu devrais avoir :
J'ai testé... tout fonctionne...
Voila.
-
-
Modérateur@yacinebosssTon fichiers test est faux...
Normal qu'il ne marche pas...
-
-
-
ModérateurVisiblement, côté php maintenant ça semble bon.
Par contre, il est étonnant que $_POST soit vide.
Peux tu nous montrer le code complet de tes fichiers<script src="SCRIPT_INFO_ARTICLE.js"></script> <script src="TEST_AFFICHAGE.js"></script>
Il faudrait également que tu vérifies l'encodage de tes fichiers ( chapitre 1 du lien suivant : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 ) (y compris ton fichier php ARTICLE_INFO.php)
Il serait pas mal également de renommer tes fichiers en minuscule.
ARTICLE_INFO.php --->> article_info.php
Idem pour tes Javascript.
Et dans ton code JS, au niveau de l'ajax, tel que je te l'avais indiqué dans ton autre question... utilises le dataType JsondataType:'json',
$.ajax({ url: "article_info.php", type: 'POST', dataType: 'json', data :{id:id_article}, success: function(response){ console.log("Reponse AJAX", response); },error:function(err){ console.log("Erreur Ajax",err); } }); -
@jordane45j'ai fait l'encodage en UTF-8
SCRIPT_INFO_ARTICLE.js:function getGET(param){ var vars = {}; window.location.href.replace( location.hash, '' ).replace( /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp function( m, key, value ) { // callback vars[key] = value !== undefined ? value : ''; } ); if ( param ) { return vars[param] ? vars[param] : null; } return vars; } var id_article= getGET('id_article'); console.log(id_article); $.ajax({ url: "article_info.php", type: 'POST', dataType: 'json', data :{id:id_article}, success: function(response){ console.log("Reponse AJAX", response); },error:function(err){ console.log("Erreur Ajax",err); } });
TEST_AFFICHAGE.js:$.ajax({ url: "article_info.php", type: 'POST', dataType:'json', success: function(article_info) { var date=document.getElementById("date_article"); var src=document.getElementById("img_article"); var edition=document.getElementById("edition_article"); date.innerHTML=article_info[0][0]; edition.innerHTML ="Edition N°"+article_info[0][2]+" Le Babezien"; src.src=article_info[0][3]; },error: function(err){ console.log('Erreur Ajax affichage',err); } });
-
-
ModérateurJ'ai édité mon message précédent pour corriger le souci.
Je commence à fatiguer un peu désolé
-
-
Modérateur@yacinebosssC'est déjà fait.
Je t'ai dit que j'ai édité mon message précédent j'ai déjà fait la correction directement dans l'autre message... https://forums.commentcamarche.net/forum/affich-36664778-recupere-le-get-dans-l-url-dans-page-html?page=1#44 -
@jordane45mais ca me fait cette erreur. j'ai envoyé les capture d'ecran
https://forums.commentcamarche.net/forum/affich-36664778-recupere-le-get-dans-l-url-dans-page-html?page=1#45 -
Modérateur@yacinebosssça y est, il fait nuit.
Je suppose donc que tu as pu commencer à manger.
j'espère donc que ta concentration va s'améliorer... :-)
Je t'ai indiqué que j'ai édité le message ( éditer = modifier )
J'y ai donc corrigé le code......... J'espère donc que tu as repris le code corrigé pour remplacer celui que je t'avais donné à l'origine....
Et si tel est le cas... non tu ne peux plus avoir l'erreur que tu nous montres.
Pour t'éviter de retourner encore sur le message édité, je te remets donc ici le code modifié :
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $servername = "localhost"; $username = "redouane"; $password = ""; $dbname = "LeBabezien"; $id = !empty($_POST['id']) ? $_POST['id'] : NULL; if(!$id){ echo json_encode(array('ERREUR'=>'ID non envoyé !', 'POST'=>$_POST)); // Erreur corrigée ici exit; } $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT date_article, langue, edition, src FROM article WHERE id_article='$id'"; $result = $conn->query($sql); if(!$result){ echo json_encode(array('ERREUR'=>$conn->error, 'POST'=>$_POST)); // Erreur corrigée icii exit; } if ($result->num_rows > 0) { // output data of each row $article_info=array(); while ($row = $result->fetch_assoc()) { $article_info[] = $row; } echo json_encode($article_info); exit; } else { echo json_encode(array('ERREUR'=>$_POST)); // Erreur corrigée ici exit; } ?>
-
-
mais reste le probléme que je ne peux pas utliser id dans mon code php ARTICLE_INFO.
-
ModérateurPeux tu modifier le code comme ceci
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $servername = "localhost"; $username = "redouane"; $password = ""; $dbname = "LeBabezien"; $id = !empty($_POST['id']) ? $_POST['id'] : NULL; if(!$id){ echo json_encode(array('ERREUR'=>'ID non envoyé !', 'POST'=>$_POST)); exit; } $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT date_article, langue, edition, src FROM article WHERE id_article='$id'"; $result = $conn->query($sql); if(!$result){ echo json_encode(array('ERREUR'=>$conn->error, 'POST'=>$_POST)); exit; } if ($result->num_rows > 0) { // output data of each row $article_info=array(); while ($row = $result->fetch_assoc()) { $article_info[] = $row; } echo json_encode($article_info); exit; } else { echo json_encode(array('ERREUR'=>$_POST)); exit; } ?>
et nous refaire des captures écran de l'onglet PARAMETRES et de l'onglet REPONSE de l'ajax ?
PS: Essaie de mettre tes images dans un seul message .... c'est plus simple à suivre que lorsque tu créés un message par image/code... -
-
-
-
ahh ok j'ai compris lerreur car j'ai pas lhabitude de travailler avec firefox.
-
-
ModérateurComment je pourrais te le dire .... à force je ne sais plus comment faire....
Ton URL ( tu sais ce qu'est une URL au moins ?? ) ... ne contient pas d' ID !!!
Il est donc NORMAL que tu ne récupères pas de valeur dans ton code Javascript !!!!!!!
Dis voir.... Tu ne ferais pas un SUBMIT du formulaire avant d'essayer de voir le contenu en ajax ??? ça expliquerait pourquoi l'id disparait ....
Par ce que .. tant que tu n'auras pas, dans l'url, l'adresse article.html?id_article=qqchose ... ça ne marchera JAMAIS ! -
-
@yacinebosssdsl mais moi je le vois qu'il est present dans l'url.
-
@yacinebosssle id que je recherche est un nombre qui est entre 1 jusqua 999. je les crée comme ca ma base de donné
-
-
- oui la meme fonction est qui retoune le bon id.
- bien sure a chaque fois je fait ctrl+f5
index.html:<!DOCTYPE html> <html id="body" lang='en' > <head> <meta charset="UTF-8" /> <title> Le babezien </title> <link rel="stylesheet" href="design.css" > <link rel="shortcut icon" href="babezien2.png"> <style type="text/css"> ul{ list-style-type: none; padding: 0px; } ul a{ text-decoration-line: none; display:block; padding-left: 16px; border:none; line-height: 2em; background: rgba(140,140,140); margin-bottom: 1px; } ul a:hover{ background-color: rgba(90,90,90); } li{ display:block; } nav h2{ line-height: 1em; text-align: center; } #article{ width: 50%; padding-left:5px; } </style> <body > <header style="background-image: url('usthb.jpg');"> <center> <img id="icone" src="le babezien.jpg"> </center> </header> <nav id="nav" > <a href="index.html" class="navchoice" id="nav1"><b>ACCUEIL</b> </a> <a href="ARTICLE.html" class="navchoice" id="nav2"><b>NOS ARTICLE</b></a> <a href="" class="navchoice" id="nav3"><b>CONTACT</b></a> <a href="" class="navchoice" id="nav4"><b>INFO</b></a> </nav> <article> <nav id="article"> <h2 id="titre_article">NOS EDTION:</h2> <ul > <li ><a href="ARTICLE.html?id_article=1"> EDITION 1 </a></li> <li ><a href=""> EDITION 2 </a></li> <li ><a href=""> EDITION 3 </a></li> <li ><a href=""> EDITION 4 </a></li> </ul> </nav> </article> <aside> </aside> <footer > <div class="LigneHonrizontalFooter" ></div> <div style="display: flex;padding-top: 10px;justify-content: center; border-height:40px; "> <p><b>SUIVEZ Le Babezien</b></p> <a onclick="clickdesign(this)" href="https://www.facebook.com/Le-babezien-104889507687360/?__tn__=%2Cd%2CP-R&eid=ARC0wVBmgp6HR37Lc_GMHCaHVkq8l3GSztM-1JFCEA9yPn8KDTcS6ikhW4si7-1a1Cdr-B1slTl1QQpV"><img src="footer-icon-facebook.png"><p> facebook</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-youtube.png"><p> youtube</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-instagram.png"><p> instagram</p></a> </div> </footer> </body> <script type="text/javascript"> var urlAjx = "<?php echo site_url('test.php'); ?>"; </script> <script type="text/javascript" src="jquery-3.5.1.js"></script> <script src=""></script> </html>
article.html<!DOCTYPE html> <html id="body" lang='en' > <head> <meta charset="UTF-8" /> <title> Le babezien </title> <link rel="stylesheet" href="design.css" > <link rel="shortcut icon" href="babezien2.png"> <body > <?php ("INSERT_COMMENTAIRE.php");?> <header style="background-image: url('usthb.jpg');"> <center> <img id="icone" src="le babezien.jpg"> </center> </header> <nav id="nav" > <a href="index.html" class="navchoice" id="nav1"><b>ACCUEIL</b> </a> <a href="ARTICLE.html" class="navchoice" id="nav2"><b>NOS ARTICLE</b></a> <a href="" class="navchoice" id="nav3"><b>CONTACT</b></a> <a href="" class="navchoice" id="nav4"><b>INFO</b></a> </nav> <article > <center> <div class="presontArt"> <p class="gauche" ><b id="edition_article"></b></p> <div style="display: flex;height: 1%;margin-top: 2.1%;" class="droite" ><p id="date_article" style="margin: 0px;"> </p> <img id="timeArt" src="time.jpg"> </div> </div> <figure style="margin: 0px;"> <img id="img_article" class="ilsr" style="margin-top: 0%;" src="" > </div> </figure> </center> <div style="float: right; width: 90px;display: flex;justify-content: center;"> <img src="fléche-gauche.png" class="article_nav" id="page_prec"> <img src="fléche-droite.png" class="article_nav" id="page_suiv"> </div> <a href="" style="margin-left:5px;margin-right: 80%;background-color: rgba(90,90,90);color: white;text-decoration: none;display: inline-block;">telecharger le pdf </a> <p style="margin-left: 5px;background:rgba(1,1,1,0.2);border-radius: 20px;display: inline-block;">AJOUTER UN COMMENTAIRE:</p> <div class="encadrageCommentaire"> <form action="INSERT_COMMENTAIRE.php" method="post"> <div class="commentaire"><div class="label_commentaire"><label for="fname">nom:</label></div> <input type="texte" name="nom" id="nom" placeholder="Entrez votre nom" required></div> <div class="commentaire"><div class="label_commentaire" placeholder="entré vote nom" required><label for="age">age:</label></div> <input id="age" type="number" name="age" pattern="[5-100]" placeholder="Entrez votre age" required></div> <div class="commentaire"><div class="label_commentaire"><label for="commentaire">commentaire:</label></div> <input id="commentaire" style="" type="text" name="le_commentaire" maxlength="200" placeholder="Entrez un commentaire" " required></div> <input style="background:rgba(1,1,1,0.2);width: 12%;margin-left: 85%; border-radius:0 0 5px 0;word-wrap: break-word;" type="submit" name="valider"> </form> </div> <p href="" style="margin-left: 6px;background:rgba(1,1,1,0.2);border-radius: 20px;display: inline-block;">ESPACE COMMENTAIRE: </p> <div id="VOS COMMENTAIRE" class="encadrageCommentaire"> </div> </article> <aside> </aside> <footer > <div class="LigneHonrizontalFooter" ></div> <div style="display: flex;padding-top: 10px;justify-content: center; border-height:40px; "> <p><b>SUIVEZ Le Babezien</b></p> <a onclick="clickdesign(this)" href="https://www.facebook.com/Le-babezien-104889507687360/?__tn__=%2Cd%2CP-R&eid=ARC0wVBmgp6HR37Lc_GMHCaHVkq8l3GSztM-1JFCEA9yPn8KDTcS6ikhW4si7-1a1Cdr-B1slTl1QQpV"><img src="footer-icon-facebook.png"><p> facebook</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-youtube.png"><p> youtube</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-instagram.png"><p> instagram</p></a> </div> </footer> </body> <script type="text/javascript"> var urlAjx = "<?php echo site_url('test.php'); ?>"; </script> <script type="text/javascript" src="jquery-3.5.1.js"></script> <script src="SCRIPT_INFO_ARTICLE.js"></script> <script src="TEST_AFFICHAGE.js"></script> <script src="le babezien.js"></script> </html>
le fichier js ou se trouve le ajax en question:function getGET(param){ var vars = {}; window.location.href.replace( location.hash, '' ).replace( /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp function( m, key, value ) { // callback vars[key] = value !== undefined ? value : ''; } ); if ( param ) { return vars[param] ? vars[param] : null; } return vars; } var id_article= getGET('id_article'); console.log(id_article); $.ajax({ url: "ARTICLE_INFO.php", type: 'POST', dataType:'text', data :{id:id_article}, success: function(id){ console.log("id envoyé"+ id); },error:function(err){ console.log("id non envoyé"); } }); -
ModérateurTu as bien utilisé la fonction JS que je t'ai donné ?
As tu vidé le cache de ton navigateur ? (quand on touhe au JS il faut systématiquement vider son cache si on veut être sûr que les modifications soient prises en compte)
Peux tu nous remettre une capture écran de l'onglet PARAMETRE ?
Peux tu nous mettre une capture écran de ton navigateur lorsque tu es sur la page article.html ?
As tu bien un id_article dans l'url cette fois ?
J'aimerai bien également que ( dans UN SEUL ET MEME MESSAGE ) tu nous repostes les codes de :
index.html
article.html
Le fichier JS où se trouve ta fonction ajax si elle n'est pas directement dans article.html.
Attention...
+ Je veux que tu indiques le nom de chaque Fichier suivi du code correspondant
+ Je veux le code COMPLET (pas juste des morceaux..) -
XD dsl en plus que je fait le jeune ca facilite pas les chose hhh.
la envoiyé par ajax est id.
la variable que j'attent est id.
ils sont identique.
le code index est tres simple:<li ><a href="ARTICLE.html?id_article=1"> EDITION 1 </a></li>
et je suis sure a 100% qu'il et bien envoyé dansl'url est quil est bien enregistré dans la variable javascript.-
-
@jordane45la meme chose : id"" .
et reponse: erreur. -
@yacinebosssmais quand je fait data{id:1}
parametre id='1'
et reponse: ca m'envois les ligne de la base donné
-
-
mais le truc ces pas un probléme de syntaxe ces juste que si je ne fait pas
id_article=1
il menvoie null car il ne le reconnais pas ché pas pourquoi.
et pour l'url de quelle url tu parle exactement.-
ModérateurTu comprends vite... mais faut t'expliquer longtemps !
On va essayer autrement...
Donc pour commencer :
Dis moi quel est le nom de la variable que tu ENVOIES en ajax (dans ton JS )
Puis dis moi le nom de la variable que tu ATTENDS du côté PHP.
Et enfin.. regarde si ces deux noms de variables sont bien identiques !
Ensuite, j'aimerai que tu nous montres le code de ta page INDEX et nous expliquant COMMENT tu arrives sur la page ARTICLE.
Y as tu bien mis l' ID de l'article que tu veux consulter ??? ( et donc, dans l'url de ta page ARTICLE, as tu bien une variable ID ?? )
-
-
non pas vraiment la page article sappelle index pour le moment. et la page de visionnage est article. (pour le moment car j'ai pas encore fait les detail.)
et au sujet de la requette qui est vide j'ai dit que ca dois etre une erreur de syntaxe ces comment qu'on faitdata:{id:nom_variable}?
est meme quand je la remplis avec 1 en fesons csharp>data:{id:1}</code>
dans parametre je vois que id=1
mais aprés rien n'est envoyé au niveau de ARTICLE_INFO.php. car je ne sais ps pour quelle raison le id n'est pas receptionné.-
et j'ai aussi remarqué que ce code dans SCRIPT_INFO_ARTICLE.js
. .. $.ajax({ url: "ARTICLE_INFO.php", type: 'POST', dataType:'text', data :{id:1}, success: function(id){ console.log("id envoyé"+ id);//je parle de cette ligne cette ligne /**/ },error:function(err){ console.log("id non envoyé"); } });
elle maffiche dans console.log :id envoyé[["21\/12\/2019","ar","1","ARTICLE\\Le-babezien-edition-1-ar\\page-001.jpg"]]
elle a eu accée a la base de donné. -
ModérateurDans l'ajax (côté JS )
tu as :data :{id:id_article},
donc, ta variable se nomme "id"
Et côté PHP, tu as écris$id = !empty($_POST['id1']) ? $_POST['id1'] : NULL;
Donc.. il s'attend à trouver une variable qui se nomme "id1"
Tu dois donc changer le php par<code php> $id = !empty($_POST['id']) ? $_POST['id'] : NULL;
Et pour en revenir à l'ID qui n'est pas présent dans l'url .. il faudra donc repartir de ta page index... et voir comment tu arrives sur ta page "article"
-
-
Modérateur
oui je sais quelle est vide ca que je comrpend pas.
Comment arrives tu sur cette page ?
Car le souci vient de là.
Aucun Pb avec le code........
C'est comme envoyer une lettre sans mettre d'adresse....
La lettre n'arrivera jamais.... et ca ne sera ni de la faute du facteur... ni celle de la boite aux lettres... mais bien un souci de celui qui a posté cette lettre !!!!
A un moment faut remettre les choses à plat et essayer de comprendre le cheminement.
Si tu n'as pas de variable dans ton URL .... ben... c'est que tu ne l'a pas mise !
Je ne comprends pas non plus, comment ça se fait que ton code ajax se trouve dans ton fichier ARTICLE .... alors qu'il sert à afficher le détail d'un article.. et donc, d'après tes précédentes explications, se trouver dans ton autre fichier...
Pour rappel, tu nous as dit :j'ai une page article et une page ou visonner les article + commentaire.
-
oui je les corrigé. le GOST cetait une erreur quand jessayer de corriger car j'ai testé le GET.
-
-
ModérateurOn voit bien, dans tes captures écran, que ton id1 est vide.
Donc soit ton url n'est pas bonne ( pourrais tu nous la coller qu'on puisse voir de quelle forme elle est )
soit c'est ta fonction pour récupérer les variables de l'url
par exemple, cette fonction devrait marcherfunction getGET(param){ var vars = {}; window.location.href.replace( location.hash, '' ).replace( /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp function( m, key, value ) { // callback vars[key] = value !== undefined ? value : ''; } ); if ( param ) { return vars[param] ? vars[param] : null; } return vars; }
et dans ton code,var id_article= getGET('id_article'); -
Modérateur@jordane45Je viens de voir l'url ....... dans tes captures écran.... et .. ben... y'a pas d' ID ...
Normal que ça ne marche pas donc... -
@jordane45oui je sais quelle est vide ca que je comrpend pas.
j'ai fait les modification:
<code csharp>
function getGET(param){
var vars = {};
window.location.href.replace( location.hash, '' ).replace(
/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
function( m, key, value ) { // callback
vars[key] = value !== undefined ? value : '';
}
);
if ( param ) {
return vars[param] ? vars[param] : null;
}
return vars;
}
var id_article= getGET('id_article');
console.log(id_article);
$.ajax({
url: "ARTICLE_INFO.php",
type: 'POST',
dataType:'text',
data :{id:id_article},
success: function(id1){
console.log("id envoyé"+ id1);
},error:function(err){
console.log("id non envoyé");
}
});</code >
ca me fait la meme chose je ne sais pas pourquoi il n'est pas en voyé dans l'url -
@yacinebosssces surement une erreur de syntaxe ici :
data :{id:id_article}, -
-
-
-
les erreur:
dans mon ma console : TEST_AFFICHAGE.js:20
Erreur Ajax affichage {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
id envoyéerreur SCRIPT_INFO_ARTICLE.js:23
ca me renvois lesuccess
dans ARTICLE_INFO.php
ca me renvoi erreur
car il na recu le id_article -
dsl parceque on navais devier du sujet d’origine.
voici mon php ARTICLE_INFO:<?php //insert data $servername = "localhost"; $username = "redouane"; $password = ""; $dbname = "LeBabezien"; $id = !empty($_GOST['id1']) ? $_POST['id1'] : NULL; $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Create connection $sql = "SELECT date_article, langue, edition, src FROM article WHERE id_article='$id'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row $article_info=array(); while ($row = $result->fetch_assoc()) { # code... $article_info[] = array($row["date_article"],$row["langue"],$row["edition"],$row["src"]); //echo ($row["date_article"]); } echo json_encode($article_info); } else { echo("erreur"); } ?>
mon code js diviser en 3 fichier:
SCRIPT_INFO_ARTICLE: (la ou est le probléme)function getParamByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); console("fait"); } var id_article= getParamByName('id_article'); console.log(id_article); $.ajax({ url: "ARTICLE_INFO.php", type: 'POST', dataType:'text', data :{id1:id_article}, success: function(id1){ console.log("id envoyé"+ id1); },error:function(err){ console.log("id non envoyé"); } });
TEST_AFFICHAGE.js:(qui marche correctement)function getParamByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); console("fait"); } var id_article= getParamByName('id_article'); console.log(id_article); $.ajax({ url: "ARTICLE_INFO.php", type: 'POST', dataType:'text', data :{id1:id_article}, success: function(id1){ console.log("id envoyé"+ id1); },error:function(err){ console.log("id non envoyé"); } });
Le babezien: (qui na rien a voir avec ca)-
ModérateurJe ne suis même pas aller plus loin que la ligne 9 dans ton premier script
$_GOST ... ça n'existe pas
C'est $_POST
Et pour voir les éventuelles erreurs dans ton ajax.. il faut les afficher
Donc, corriger le "error" de ton js comme ceci},error: function(err){ console.log('Erreur AJAX',err); // affiche les éventuelles erreurs retournées par ton code php console.log("id non envoyé"); }
et pour le datatype ... ne touche à rien.
C'est JSON qu'il faut utiliser !!//dataType:'text', // NON ! éviter ! dataType : "json",
-
- 1
- 2












