在很多列資料中,我想要點擊那行href時,把那行的(chi文字)傳到js並啟動js,
用了很多次都失敗,求幫忙
………………………………………………
PHP 同份檔案
foreach ($pdo->query('select * from word') as $row) {
echo '', $row['chi'], '';
echo "<a href='#' onclick='speaking($row['chi']);'/>顯示文字";
}
function speaking($row['chi'],) {
var ch=$row['chi'];
alert(ch)}
php是後端,js是前端
你把兩個前後端混在一起了
試試這樣吧
<?php
foreach ($pdo->query('select * from word') as $row) {
echo '', $row['chi'], '';
echo "<a href='#' onclick='speaking(\"" . $row['chi'] . "\");'>發音</a>";
}
?>
<script>
function speaking(ch) {
alert(ch)
}
</script>
單純傳值應該是這樣
<?php
$demo = 'demo';
?>
<script>
var php_value = <?php echo json_encode($demo)?>;
console.log(php_value); //show demo
</script>
至於你的例子onclick傳不過去是因為
這段單雙引號你混用沒注意到
echo "<a href='#' onclick='speaking($row['chi']);'/>顯示文字";
onclick的單引號會吃掉$row['chi']裡面的造成錯誤
可以設置變數給它
$value = $row['chi'];
echo "<a href='#' onclick='speaking($value);'/>顯示文字";
echo "<a href='#' onclick='speaking({$value});'/>顯示文字";
echo "<a href='#' onclick='speaking(" . $value . ");'/>顯示文字";
以上三總應該都可以
要注意的是外面如果用單引號就不能用{}
後端語言只會解析成html碼。並沒辦法對前端瀏覽器做任何動作。
當然了,你可以送出立即運行的js。但也只能在第一次開頁面處理。
不要將後端跟前端語言兩個搞在一起。觀念要分清楚。