Heim  >  Fragen und Antworten  >  Hauptteil

Titelumschreibung: Beim Extrahieren von Text aus einer URL sind die mit $_GET zurückgegebenen Ergebnisse undefiniert

Ich versuche, $_GET zu verwenden, um eine ID aus get-albums-genres.php?gid=".$id." zu extrahieren, aber es gibt mir undefiniert zurück!

Nachdem ich die Daten aus der Genre-Tabelle extrahiert hatte, führte ich eine SQL-Abfrage mit einem Array aus, um die Musikgenre-Daten

abzurufen
$dbcursor = $db->query("
    SELECT *
    FROM GENRES_TBL
    ORDER BY ID
    ");

$genres = [];
while($takegenre = $dbcursor->fetch_object()) $genres[] = $takegenre;

Danach habe ich eine HTML-Tabelle mit <a-Tags erstellt und dabei eine foreach-Schleife verwendet, um Hyperlinks für jede Art von Musik zu erstellen.

<?php
    foreach($genres as $gs)
    {
        $id = $gs->ID;
        echo "
            <a class='gentons' href='get-albums-genres.php?gid=".$id."'>".$gs->GENRE."</a>";
    }
    ?>
</table>

Mit diesen Hyperlinks möchte ich eine Tabelle aller Alben des ausgewählten Genres anzeigen. Um dies zu erreichen, habe ich vor, die ID aus dem href zu extrahieren und sie in einer SQL-Abfrage zu verwenden, um die Albumtyp-ID mit der Typ-ID zu verketten, aber beim Extrahieren der ID mit $_GET wird das in der php-Datei angezeigt Das Album Wenn ich eine Variable deklariere und $_GET verwende, wird mir ein undefinierter Wert zurückgegeben.

$genre_id = $_GET['gid'];

echo"$genre_id";   //undefined

if(isset ($_GET['gid'])){
    echo"yes";
}else{
    echo"no";
}  //yes

Der Javascript-Code mit der Veranstaltung lautet wie folgt:

$(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;
            })

Das ist seltsam, weil ich genau das Gleiche in einer anderen PHP-Datei gemacht habe, ich habe den Namen oder das beste Lied des Künstlers eingegeben und dann wurden alle seine Alben gefunden und angezeigt, und dort habe ich $_GET verwendet. An der Methode ist nichts auszusetzen. Ich verstehe auch nicht, warum, wenn ich mit dem Cursor über einen Hyperlink fahre, der Link und die entsprechende ID angezeigt werden, aber wenn ich versuche, ihn zu extrahieren, ein Problem auftritt. Bildbeschreibung eingeben

P粉895187266P粉895187266380 Tage vor519

Antworte allen(1)Ich werde antworten

  • P粉811349112

    P粉8113491122023-09-08 11:42:55

    您在这里有几个问题。首先,不要使用链接标签中的href(您肯定不希望任何人实际访问该URL,对吧?),让我们将href设置为#,并将我们的类型ID放在一个数据属性中。让我们在处理时将单引号和双引号弄清楚。

    echo '<a class="gentons" data-gid="' . $id . '" href="#">' . $gs->GENRE . '</a>';
    

    现在在我们的JS中,我们可以使用preventDefault()取消事件,获取类型ID,其余的保持不变。

    $(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;
    });
    

    这应该可以工作,或者至少能帮助您解决下一个错误。

    Antwort
    0
  • StornierenAntwort