在onClick函数中传递php变量

时间:2011-07-08 07:22:47

标签: php javascript html

我想在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>';
?>

6 个答案:

答案 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对象。

比在输出中传递值更安全。