我使用PHP從MySQL中提取一些數據,並需要將ID作爲參數傳遞給onClick()方法。將PHP變量傳遞給onClick方法
while($row = mysql_fetch_array($result))
{
echo '<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')">' .
$row['Title'];
}
我得到echo
語句的語法問題。我究竟做錯了什麼?
我使用PHP從MySQL中提取一些數據,並需要將ID作爲參數傳遞給onClick()方法。將PHP變量傳遞給onClick方法
while($row = mysql_fetch_array($result))
{
echo '<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')">' .
$row['Title'];
}
我得到echo
語句的語法問題。我究竟做錯了什麼?
是的,你試圖打開一個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>
另一種方式:
<?php while($row = mysql_fetch_array($result)) { ?>
<a href=# onclick="showFilm('<?php echo $row['ID'] ?>')"> <?php echo $row['Title'] ?> </a>
<?php } ?>
不要忘記在年底關閉的標籤。沒有在您的代碼中看到它。
不顯眼的javascript,請;幫助引導新手走向最佳實踐。 –
轉向最佳實踐可能會混淆新手。一步一步來。 – Popnoodles
你的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();
});
OP在哪裏提到jQuery? –
然後提供一個香草JavaScript示例。 OP顯然非常新穎,所以請幫助他們朝正確的方向前進。 –
macek,在這個答案中的HTML是錯誤的。它沒有向用戶解釋如何解決他們的問題。如果他們粘貼,他們仍然會看到一個PHP錯誤。 – Popnoodles
感謝popnoodles - 這是它 - 很明顯的看它:P –
ķ。你錯過了''也 – Popnoodles
「理想情況下,你不會使用onclick」你會建議什麼?我對PHP很陌生,所以不確定其他方式。 –