我从 mysql 数据库中生成了一些元素,这些元素显示正确并且还附加了它们的主 ID。
我希望当其中一个元素在点击时被选中(使用“a”)时,jquery 被发送到数据库以调用关于这个所选元素的更多信息并显示在这个主页上。
问题是所选的主要 ID 没有到达我的获取页面,在该页面中来自数据库调用的更多信息被格式化并返回到显示页面。
我认为错误在这里:
<script type="text/javascript">
$(document).ready(function() {
$('a').click(function() {
var id = $(this).val('myval');
$.ajax({ //create an ajax request to foliobase.php
type: "GET",
//link to the foliobase.php file "?subj" here is the connector///
url: "foliobase.php?subj="+id,
dataType: "html",
success: function(response){
$("#fillFolio").html(response);
}
});
});
});
</script>
尤其是这部分,因为当我将 folio_id 编号直接放在 ?subj= 而不是 +id 之后时,一切正常:
var id = $(this).val('myval');
这是生成的元素表:
<?php
$query = mysqli_query($connection, "select * from portfolio");
print "<ul>";
while($row = mysqli_fetch_assoc($query)){
print "<li><a href=\"javascript:return(0)\" myval=".$row['folio_id']."> <div class=thumbnails><img src={$row['image']}></a></td></li>";
}
print "</ul>";
?>
这里是fetch页面,里面有mysql查询和要返回到显示页面的信息布局:
$folio = mysqli_real_escape_string($connection, $_GET['subj']);
//I'm getting exists here!!!!!!!
if(!empty($_GET)){
echo "exists";
}
else{
echo "do not exist";
}
?>
<?php
$query = mysqli_query($connection, "select * from portfolio WHERE folio_id='$folio'");
我仍然在掌握 Javascript、jquery、ajax 等,并且在我考虑向 stackoverflow 寻求帮助之前已经研究了好几天,所以提前致谢。
最佳答案
改为使用 attr()
:
var id = $(this).attr('myval');
或者你可以使用 data-*
属性:
print "<li><a href=\"javascript:return(0)\" data-myval=".$row['folio_id']."...</td></li>";
然后你可以使用:
$('a').click(function() {
var id = $(this).data('myval');
});
关于javascript - 生成列表中的 $_GET 在显示页面上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33344905/