передача переменной php в функцию onClick - PullRequest
10 голосов
/ 08 июля 2011

Я хочу передать значение переменной php в функцию onClick.Когда я передаю переменную php, в пользовательском интерфейсе я получаю саму переменную, а мне нужно ее значение.

Ниже приведен фрагмент кода, пожалуйста, помогите мне.

<?php
print '<td>'; 
$node  = $name->item(0)->nodeValue;
$insert= "cubicle"."$node<br>";
Echo '<a href= "#" onClick= showDetails("$node");>'. $insert .'</a> ';
print '</td>';
?>

Ответы [ 6 ]

20 голосов
/ 08 июля 2011

Разбор переменных выполняется только в двойных кавычках .Вы можете использовать конкатенацию строк или, что я считаю более читабельным, printf [документы] :

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 представляет число, вам не нужны кавычки вокруг аргумента.

4 голосов
/ 08 июля 2011

вы не должны заключать $ node в '"':

Echo '<a href= "#" onClick= showDetails($node);>'. $insert .'</a> ';

Если вы хотите, чтобы значение $ node было в строке, тогда я бы сделал:

Echo '<a href= "#" onClick= showDetails("' . $node. '");>'. $insert .'</a> ';
1 голос
/ 10 августа 2018

В последнее время я использую фигурные скобки вместо конкатенации.Я думаю, что это выглядит лучше / более читабельно, и в основном я считаю, что это проще и менее подвержено человеческим ошибкам - сохраняя все эти цитаты прямо!Вам также понадобятся кавычки вокруг содержимого внутри onClick.

Вместо этого:

Echo '<a href= "#" onClick= showDetails($node);>'. $insert .'</a> ';

Попробуйте это:

Echo '<a href= "#" onClick= "showDetails({$node});">{$insert}</a> ';

Как примечание, я обычноиспользуйте двойные кавычки, чтобы обернуть мой эхо-оператор, и строго используйте в нем одинарные кавычки.Это всего лишь мой стиль.Тем не менее, вы делаете это, не забудьте сохранить это прямо.Так что моя версия будет выглядеть так:

echo "<a href='#' onClick='showDetails({$node});'>{$insert}</a>";
1 голос
/ 08 июля 2011
Echo '<a href= "#" onClick= showDetails("'.$node.'");>'. $insert .'</a> ';
1 голос
/ 08 июля 2011
$var = "Hello World!";
echo "$var"; // echoes Hello World!
echo '$var'; // echoes $var

Не путайте " и ', они оба имеют значение. Если вы используете " в вашей строке и не хотите использовать тот же символ, что и разделитель, используйте этот трюк:

echo 'I say "Hello" to ' . $name . '!';
0 голосов
/ 08 июля 2011

Я думаю, вы ищете функцию PHP json_encode, которая преобразует переменную PHP в объект JavaScript.

Это более безопасно, чем передавать значение прямо в выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...