Maison > Questions et réponses > le corps du texte
J'essaie d'utiliser $_GET pour extraire un identifiant de get-albums-genres.php?gid=".$id." mais cela me renvoie un élément indéfini !
Après avoir extrait les données de la table des genres, j'ai exécuté une requête SQL en utilisant un array pour obtenir les données du genre musical
$dbcursor = $db->query(" SELECT * FROM GENRES_TBL ORDER BY ID "); $genres = []; while($takegenre = $dbcursor->fetch_object()) $genres[] = $takegenre;
Après cela, j'ai créé une tableau HTML contenant des <a balises, en utilisant une boucle foreach pour créer des hyperliens pour chaque type de musique.
<?php foreach($genres as $gs) { $id = $gs->ID; echo " <a class='gentons' href='get-albums-genres.php?gid=".$id."'>".$gs->GENRE."</a>"; } ?> </table>
Avec ces hyperliens, je souhaite afficher un tableau de tous les albums du genre sélectionné. Pour y parvenir, je prévois d'extraire l'identifiant du href et de l'utiliser dans une requête SQL pour concaténer l'identifiant du type d'album à l'identifiant du type, mais lors de l'extraction de l'identifiant avec $_GET, dans le fichier php qui obtient l'album Lors de la déclaration d'une variable et de l'utilisation de $_GET, cela me renvoie une valeur indéfinie.
$genre_id = $_GET['gid']; echo"$genre_id"; //undefined if(isset ($_GET['gid'])){ echo"yes"; }else{ echo"no"; } //yes
Le code Javascript avec l'événement est le suivant :
$(document).on('click', 'a.gentons', function(e) { $.get('get-albums-genres.php?gid=' + $('input[name="gid"]').val(), function(data) { $('#albums-list').html(data); }); return false; })
C'est bizarre car j'ai fait exactement la même chose dans un autre fichier php, j'ai entré le nom ou la meilleure chanson de l'artiste puis tous ses albums ont été trouvés et affichés, et là j'ai utilisé $_GET Il n'y a rien de mal avec la méthode. Je ne comprends pas non plus pourquoi lorsque je passe le curseur sur un lien hypertexte, il affiche le lien et l'identifiant correspondant, mais lorsque j'essaie de l'extraire, il y a un problème.
Entrez la description de l'imageP粉8113491122023-09-08 11:42:55
Vous avez quelques questions ici. Tout d’abord, au lieu d’utiliser le href dans la balise de lien (vous ne voulez certainement pas que quiconque visite l’URL, n’est-ce pas ?), définissons le href sur #
et mettons notre identifiant de type dans un attribut de données. Rendons clairs les guillemets simples et les guillemets doubles pendant que nous y sommes.
echo '<a class="gentons" data-gid="' . $id . '" href="#">' . $gs->GENRE . '</a>';
Maintenant, dans notre JS, nous pouvons utiliser preventDefault()
pour annuler l'événement, obtenir l'identifiant de type et laisser le reste inchangé.
$(document).on('click', 'a.gentons', function (e) { e.preventDefault(); $.get('get-albums-genres.php?gid=' + $(this).data('gid'), function (data) { $('#albums-list').html(data); }); return false; });
Cela devrait fonctionner, ou au moins vous aider à corriger la prochaine erreur.