Problème AJAX JSON API
Résolujordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je me tourne vers vous car je bloque sur un problème...
Je suis en train de réaliser un site internet pour une webradio et je bloque au niveau du titrage.
J'ai un fichier titrage.js, qui est normalement censé faire appel à titrage.php à l'aide de $.ajax url.
Dans le titrage php, j'ai toute la partie API qui s'occupe de récupérer le titre en cours, l'insérer en base de données, ... toute cette partie fonctionne.
La partie JS doit normalement récupérer les informations obtenues grâce à l'API de titrage.php et les envoyer dans les différentes div.
Mon soucis est que titrage.js ne fait rien.. il ne récupère aucune données de titrage.php et n'exécute aucune requêtes PHP.
Voici mes codes :
Titrage.js
$( document ).ready(function() { titrage(); $("head").append( $(document.createElement("link")).attr({rel:"stylesheet", type:"text/css", href:"https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"}) ); }); function titrage() { $.ajax({ url: "titrage.php", cache:false, dataType : 'json', success:function(data){ if($('#artiste').text() != data.artist) { $("#artiste").html(data.artist); $("#titre").html(data.title); } }, }); setTimeout(titrage, 10000);//10sec }
Titrage.php
<?php ini_set('display_errors','0'); require('../configuration/config.php'); header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET"); header("Access-Control-Allow-Headers: Origin, Methods, Content-Type"); $url = 'URL DE MON API'; $data = file_get_contents(''.$url.''); $json = json_decode($data); $isSong = true; $artist = $json->{'artist'}; $title = $json->{'title'}; $cover = $json->{'cover'}; $time = date("H:i"); $sql = 'INSERT INTO radio VALUES(NULL, "'.$artist.'", "'.$title.'", "'.$covers.'", "'.$time.'")'; $conn->query($sql); ?>
Je précise que le code m'a été fourni, et que je ne suis pas un super pro du JS... mais là j'avoue ne pas comprendre pourquoi titrage.js ne fait rien de tout ce que je lui demande... surement un truc bête mais qui doit avoir son importante..
Merci à vous par avance de l'aide que vous m'apporterez
- Problème AJAX JSON API
- Naz api - Accueil - Piratage
- Unable to initialize steam api pes 2017 - Forum Jeux vidéo
- Api taboola ✓ - Forum Virus
- Ouvrir fichier json android ✓ - Forum Téléphones & tablettes Android
- Api injoignable cyberghost ✓ - Forum Réseaux sociaux
7 réponses
bonjour
ton titrage.php ne retourne rien... donc le if dans ton js ne peut pas fonctionner...
et pour t'aider un peu
Bonjour,
Je n'ai pas l'impression que le .php renvoie une valeur. Ensuite, il peut être utile d'afficher l'erreur rencontrée côté .js
Dans le .js, juste après le "}," du "success:", ajoute un "error:" :
error: function(jqXHR, textStatus, errorThrown) { console.error("Erreur rencontrée : " + textStatus + ", " + errorThrown); }
Côté PHP, après le "$conn->query($sql);", ajoute un retour JSON :
echo json_encode([ "artist" => $artist, "title" => $title, "cover" => $cover, "time" => $time ]);
Aussi, travaille mieux les indentations ':-D On met 4 espaces par bloc d'indentation par convention plutôt que des tabulations.
Tiens au jus !
Bonsoir à tous,
Je réouvre le topic car j'ai un nouveau soucis...
Lorsque titrage.php récupère un titre qui comporte un " ' " tout le système plante...
Savez-vous si une solution existe pour corriger cela ?
Merci beaucoup !
Bonjour,
Normalement... nouveau problème = nouvelle discussion sur le forum...
Bon..bref..
Quoi qu'il en soit, tu n'es pas assez précis dans tes explications !
Quand tu dis :
Lorsque titrage.php récupère un titre qui comporte un " ' " tout le système plante...
C'est lorsque tu récupères la valeur dans ton "data" ? (je suppose... )
Et donc, ton souci vient au niveau de ta requête !
Pour éviter cela, si tu utilises PDO, il te faut utiliser les requêtes préparées.
Voir, ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionAutant pour moi je le saurais pour la prochaine fois :-)
Oui pardon, par exemple si
$artist = $json->{'artist'};
renvoi un artiste qui comporte un " ' " tout le script ne fonctionne plus.
J'ai lu plusieurs choses, notamment sur utf8 mais je t'avoue que j'y comprend pas grand chose...
Merci
C'est donc bien le souci que j'avais compris.
Tu dois donc appliquer ce qui se trouve dans le lien que je t'ai donné pour modifier ta requête
$sql = 'INSERT INTO radio VALUES(NULL, "'.$artist.'", "'.$title.'", "'.$covers.'", "'.$time.'")'; $conn->query($sql);
https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/requete-preparee/