我想在onClick函数中传递php变量值。 当我传递php变量时,在UI中我得到变量本身,而我需要变量中的值。
以下是代码段,请帮帮我。
<?php
print '<td>';
$node = $name->item(0)->nodeValue;
$insert= "cubicle"."$node<br>";
Echo '<a href= "#" onClick= showDetails("$node");>'. $insert .'</a> ';
print '</td>';
?>
答案 0 :(得分:19)
变量解析仅在double quoted strings中完成。您可以使用字符串连接,或者我发现更具可读性的printf
[docs]:
printf('<a href= "#" onClick="showDetails(\'%s\');">%s</a> ', $node, $insert);
最好的方法是不要使用echo
HTML,而是将PHP嵌入HTML:
<?php
$node = $name->item(0)->nodeValue;
$insert = "cubicle" . $node;
?>
<td>
<a href= "#" onClick="showDetails('<?php echo $node;?>');">
<?php echo $insert; ?> <br />
</a>
</td>
你必须少考虑引用,调试你的HTML也会更容易。
注意: 如果$node
代表一个数字,则参数周围不需要引号。
答案 1 :(得分:4)
你不应该在'“'中包装$ node:
Echo '<a href= "#" onClick= showDetails($node);>'. $insert .'</a> ';
如果你想让$ node的值在一个字符串中,我会这样做:
Echo '<a href= "#" onClick= showDetails("' . $node. '");>'. $insert .'</a> ';
答案 2 :(得分:1)
$var = "Hello World!";
echo "$var"; // echoes Hello World!
echo '$var'; // echoes $var
不要混淆"
和'
,它们都很重要。如果你在字符串中使用了一些"
并且不想使用相同的字符作为分隔符,请使用此技巧:
echo 'I say "Hello" to ' . $name . '!';
答案 3 :(得分:1)
Echo '<a href= "#" onClick= showDetails("'.$node.'");>'. $insert .'</a> ';
答案 4 :(得分:1)
我最近一直在使用花括号而不是串联。我认为它看起来更好/更具可读性,而且大多数情况下我发现它更容易且不易出现人为错误-保持所有这些引号正确!您还需要在onClick内部的内容周围加上引号。
代替此:
Echo '<a href= "#" onClick= showDetails($node);>'. $insert .'</a> ';
尝试一下:
Echo '<a href= "#" onClick= "showDetails({$node});">{$insert}</a> ';
作为旁注,我通常使用双引号来包装我的echo语句,并在其中严格使用单引号。那只是我的风格。无论您执行什么操作,请务必保持笔直。所以我的版本看起来像这样:
echo "<a href='#' onClick='showDetails({$node});'>{$insert}</a>";
答案 5 :(得分:0)
我认为您正在搜索PHP函数json_encode
,它将PHP变量转换为JavaScript对象。
比在输出中传递值更安全。