Tulis Semula Tajuk: Apabila mengekstrak teks daripada URL, hasil yang dikembalikan menggunakan $_GET tidak ditentukan
P粉895187266
P粉895187266 2023-09-07 22:05:23
0
1
582

Saya cuba menggunakan $_GET untuk mengekstrak id daripada get-albums-genres.php?gid=".$id." tetapi ia mengembalikan saya tanpa definisi!

Selepas mengekstrak data daripada jadual genre, saya menjalankan pertanyaan SQL menggunakan array untuk mendapatkan data genre muzik

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

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

Selepas ini, saya mencipta jadual html yang mengandungi <a tag, menggunakan gelung foreach untuk mencipta hiperpautan bagi setiap jenis muzik.

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

Dengan hiperpautan ini saya ingin memaparkan jadual semua album genre yang dipilih. Untuk mencapai matlamat ini, saya merancang untuk mengekstrak id daripada href dan menggunakannya dalam pertanyaan SQL untuk menggabungkan id jenis album dengan id jenis, tetapi apabila mengekstrak id dengan $_GET, dalam fail php yang mendapat album Apabila mengisytiharkan pembolehubah dan menggunakan $_GET, ia mengembalikan saya nilai yang tidak ditentukan.

$genre_id = $_GET['gid'];

echo"$genre_id";   //undefined

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

Kod Javascript dengan acara adalah seperti berikut:

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

Ini adalah pelik kerana saya melakukan perkara yang sama dalam fail php yang lain, saya memasukkan nama atau lagu terbaik artis dan kemudian semua albumnya ditemui dan dipaparkan, dan di sana saya menggunakan $_GET Tidak ada yang salah dengan kaedah itu. Saya juga tidak faham mengapa apabila saya tuding kursor pada hiperpautan, ia menunjukkan pautan dan id yang sepadan, tetapi apabila saya cuba mengekstraknya terdapat masalah.

Masukkan penerangan gambar

P粉895187266
P粉895187266

membalas semua(1)
P粉811349112

Anda mempunyai beberapa soalan di sini. Mula-mula, daripada menggunakan href dalam teg pautan (anda pasti tidak mahu sesiapa pun melawati URL itu, bukan?), mari tetapkan href kepada # dan letakkan ID jenis kami dalam atribut data. Mari kita jelaskan petikan tunggal dan petikan berganda semasa kita melakukannya.

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

Kini dalam JS kami, kami boleh menggunakan preventDefault() untuk membatalkan acara, dapatkan id jenis dan biarkan selebihnya tidak berubah.

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

Ini sepatutnya berfungsi, atau sekurang-kurangnya membantu anda membetulkan ralat seterusnya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan