0

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

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

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

4

3 回答 3

1

是的,您正在尝试在一行 php.ini 中打开一个 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,您需要在单独的 js 文件之前</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>
于 2012-11-27T00:32:44.710 回答
0

另一种方式:

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

不要忘记在最后关闭 a 标签。在您的代码中没有看到它。

于 2012-11-27T00:35:47.333 回答
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();
});
于 2012-11-27T00:36:24.073 回答