2012-11-27 104 views
0

我使用PHP從MySQL中提取一些數據,並需要將ID作爲參數傳遞給onClick()方法。將PHP變量傳遞給onClick方法

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

我得到echo語句的語法問題。我究竟做錯了什麼?

回答

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> 
+0

感謝popnoodles - 這是它 - 很明顯的看它:P –

+0

ķ。你錯過了''也 – Popnoodles

+0

「理想情況下,你不會使用onclick」你會建議什麼?我對PHP很陌生,所以不確定其他方式。 –

0

另一種方式:

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

不要忘記在年底關閉的標籤。沒有在您的代碼中看到它。

+0

不顯眼的javascript,請;幫助引導新手走向最佳實踐。 –

+1

轉向最佳實踐可能會混淆新手。一步一步來。 – Popnoodles

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(); 
}); 
+2

OP在哪裏提到jQuery? –

+1

然後提供一個香草JavaScript示例。 OP顯然非常新穎,所以請幫助他們朝正確的方向前進。 –

+0

macek,在這個答案中的HTML是錯誤的。它沒有向用戶解釋如何解決他們的問題。如果他們粘貼,他們仍然會看到一個PHP錯誤。 – Popnoodles