可能重复:
Pass a PHP string to a Javascript variable (and escape newlines)
任何人都可以告诉我将php变量传递给javascript函数的方法以及javascript变量到php script.Here是我要传递php变量的示例行,但是当我正在执行该函数时没有被执行
echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>";
请帮帮我。
答案 0 :(得分:0)
添加大括号,将会起作用:
echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>";
答案 1 :(得分:0)
您需要在onclick中引用字符串:
echo "<td><a href='#' onclick='disp_confirm(\"{$row->university}\")'>Delete</a></td>";
答案 2 :(得分:0)
要将变量打印到Javascript中,您只需添加花括号(这仅在您发出双引号字符串时才有效,所以:
echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>";
将起作用
echo '<td><a href="#" onclick="disp_confirm({$row->university})">Delete</a></td>';
将不工作。 {$variables}
,{$array['of values']}
等等也是如此。
(在上面的代码中,$row->university
必须是整数,否则您将收到Javascript错误。如果是这样,请使用转义的单引号引用该值)
更新(感谢Mihai Iorga):您必须考虑变量与Javascript代码的交互方式。引用字符串是不够的,因为变量本身可能包含引号。因此,如果您的大学是“施卡尔大学”,HTML将成为
onclick='disp_confirm(\'Shi'Kahr University\')'
并且Javascript会立即被破坏。因此,您还必须使用addslashes()
来确保正确引用您的字符串。由于您在字符串中编写字符串,因此需要调用addslashes()
两次才能获得
onclick='disp_confirm(\'Shi\\\'Kahr University\')'
要将Javascript值传递给服务器端的PHP脚本,您可以使用AJAX(例如jQuery库),也可以将值添加到URL并重新加载页面:
alert("Submitting " + value);
location.href = '?variable=' + value;
脚本将从头开始(可能是您想要的,也可能不是),然后$_GET['variable']
将包含值。您可以使用if
来区分这两种情况:
<?php
if (isset($_GET['variable']))
{
// This is the second round
}
else
{
// This is the first time
}
// common code goes here
?>
最后,有些库允许混合使用PHP和Javascript。它们基本上如上所述,但它们负责繁重的工作,变量传递,逃避和回调。例如,参见XAJAX,但存在其他几个。
答案 3 :(得分:0)
您不能将javascript变量传递给PHP,除非您通过提交表单(因为JS在客户端,而不是在服务器中)或使用AJAX来发送信息。
在想要将PHP变量编写到JS中时,必须将变量回显到de HTML / JS代码中,如下所示:
<td><a href='#' onclick='disp_confirm(<?php echo $row->university?>)'>Delete</a></td>
或:
function name() {
var i=<?php echo $data?>;
...
}