我正在使用PHP从MySQL中提取一些数据,需要将ID作为参数传递给onClick()方法。
while($row = mysql_fetch_array($result))
{
echo '<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')">' .
$row['Title'];
}
我在echo
语句中遇到语法问题。我做错了什么?
答案 0 :(得分:1)
是的,你正试图在一行php中打开一个php标签。这样做
echo '<a href="#" onclick="showFilm(' . $row['ID'] .')">' . $row['Title'] . '</a>';
你错过了一个结束</a>
。理想情况下你不会使用onclick,但这不是你所问的,它不会在那里打破它。哦,应该引用href的值。
所以,既然你问,那就说你想用jQuery而不是onclick
echo '<a href="#" class="showfilm" data-filmid="' . $row['ID'] .'">' . $row['Title'] . '</a>';
您需要包含jquery库。请参阅此http://docs.jquery.com/How_jQuery_Works,您需要在</body>
之前或单独的js文件中使用自己的脚本。
<!-- the rest of your html blah blah -->
<script src="jquery.js"></script>
<script src="your-other-js-funcs.js"></script>
<script>
$(function(){
$('.showfilm').on('click', function(e){
e.preventDefault(); // stops the link doing what it normally
// would do which is jump to page top with href="#"
showFilm($(this).data('filmid'));
});
});
</script>
</body>
</html>
答案 1 :(得分:0)
另一种方式:
<?php while($row = mysql_fetch_array($result)) { ?>
<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')"> <?php echo $row['Title'] ?> </a>
<?php } ?>
别忘了在最后关闭一个标签。没有在你的代码中看到它。
答案 2 :(得分:0)
您的HTML
<?php while($row = mysql_fetch_assoc($result)): ?>
<a href="#showFilm" data-film-id="<?php echo $row['ID'] ?>">
<?php echo $row['Title'] ?>
</a>
<?php endwhile ?>
你的jQuery
$('a[href=#showFilm]').click(function(event) {
showFilm( $(this).attr('data-film-id') );
event.preventDefault();
});