簡體   English   中英

使用 $_GET 從 URL 中提取文本給我 undefined

[英]Extracting text from URL using $_GET gives me undefined

我正在嘗試從get-albums-genres.php?gid=".$id."中提取一個 ID。 使用 $_GET 它給了我未定義的!

在運行SQL查詢以從我的流派表中提取數據后,我在數組中獲取音樂流派的數據

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

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

在此之后,我創建了一個html 表,其中包含使用 foreach 循環為每種類型提供超鏈接的<a 標簽

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

通過這些超鏈接,我想顯示所選流派的所有專輯的表格。 為了做到這一點,我計划從href中提取 id,然后在 SQL 查詢中使用它來將專輯流派 ID 連接到流派 ID,但是在php 文件中用於在聲明變量和使用 $_GET 時獲取專輯提取 id 它給了我未定義的值。

$genre_id = $_GET['gid'];

echo"$genre_id";   //undefined

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

事件的 Javascript 代碼是

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

這很奇怪,因為我在另一個 php 文件中執行了完全相同的操作,在該文件中我輸入了藝術家的姓名或最佳歌曲,然后找到並顯示他的所有專輯,我對那里的 $_GET 方法沒有任何問題。 我也不明白為什么當我hover 我的 cursor 超過流派的超鏈接時,它會顯示鏈接和相應的 ID,但是當我嘗試提取它時出現問題

在此處輸入圖像描述

你這里有幾個問題。 首先,不要在鏈接標簽中使用 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;
});

這應該可以工作,或者至少可以讓您解決下一個錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM