我从mysql数据库中生成了一些元素,这些元素正确显示,并且还附加了它们的主要id。
我想当其中一个元素被选中onClick(使用'a'), jquery被发送到数据库,以召回更多的信息在这个选定的元素,并显示在这个主页上。
问题是所选择的主id没有通过我的fetch页面,在这里,来自数据库调用的进一步信息被格式化并返回到显示页面。
我认为错误在这里:
<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');
});
myval不是一个有效的HTML属性。
你的php应该输出如下内容:
<?php
$query = mysqli_query($connection, "select * from portfolio");
print "<ul>";
while($row = mysqli_fetch_assoc($query)){
print "<li><a href='"javascript:return(0)'" data-myval=".$row['folio_id']."> <div class=thumbnails><img src={$row['image']}></a></td></li>";
}
print "</ul>";
?>
你的jQuery代码应该像这样:
var id = $(this).data('myval');