[英]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.