Maison  >  Questions et réponses  >  le corps du texte

Réécriture du titre : lors de l'extraction du texte d'une URL, les résultats renvoyés à l'aide de $_GET ne sont pas définis

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'image

P粉895187266P粉895187266380 Il y a quelques jours520

répondre à tous(1)je répondrai

  • P粉811349112

    P粉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.

    répondre
    0
  • Annulerrépondre