将PHP变量传递给onClick方法

时间:2012-11-27 00:31:13

标签: php parameters onclick

我正在使用PHP从MySQL中提取一些数据,需要将ID作为参数传递给onClick()方法。

while($row = mysql_fetch_array($result))
{   
  echo '<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')">' . 
    $row['Title'];
}

我在echo语句中遇到语法问题。我做错了什么?

3 个答案:

答案 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();
});