我正在尝试使用$_GET从get-albums-genres.php?gid=".$id."中提取一个id,但它给我返回undefined!
在从genre表中提取数据之后,我使用数组运行了一个SQL查询来获取音乐类型的数据
$dbcursor = $db->query("
SELECT *
FROM GENRES_TBL
ORDER BY ID
");
$genres = [];
while($takegenre = $dbcursor->fetch_object()) $genres[] = $takegenre;
在此之后,我创建了一个包含<a标签的html表格,使用foreach循环为每个类型的音乐创建了超链接。
<?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上,但是在用$_GET提取id时,在获取专辑的php文件中声明变量并使用$_GET时,它给我返回undefined值。
$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方法没有任何问题。我也不明白为什么当我将光标悬停在超链接上时,它会显示链接和相应的id,但是当我尝试提取它时却出现问题。
输入图像描述
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您在这里有几个问题。首先,不要使用链接标签中的href(您肯定不希望任何人实际访问该URL,对吧?),让我们将href设置为
#,并将我们的类型ID放在一个数据属性中。让我们在处理时将单引号和双引号弄清楚。现在在我们的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; });这应该可以工作,或者至少能帮助您解决下一个错误。