谁能告诉我将php变量传递给javascript函数以及将javascript变量传递给php脚本的方法。这是我想传递php变量的示例行,但是当我这样做时,该函数没有被执行
echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>";
请帮我。
谁能告诉我将php变量传递给javascript函数以及将javascript变量传递给php脚本的方法。这是我想传递php变量的示例行,但是当我这样做时,该函数没有被执行
echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>";
请帮我。
添加大括号并将工作:
echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>";
您需要在 onclick 中引用字符串:
echo "<td><a href='#' onclick='disp_confirm(\"{$row->university}\")'>Delete</a></td>";
要将变量打印到 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 代码交互。引用字符串是不够的,因为变量本身可能包含引号。因此,如果您的大学是“Shi'Kahr University”,那么 HTML 将变为
onclick='disp_confirm(\'Shi'Kahr University\')'
并且 Javascript 将立即被破坏。所以你还必须使用addslashes()
来确保你的字符串被正确引用。由于您在 string 中写入string,因此需要调用addslashes()
两次才能获得
onclick='disp_confirm(\'Shi\\\'Kahr University\')'
要将 Javascript 值传递给服务器端的 PHP 脚本,您可以使用 AJAX(例如 jQuery 库),也可以将值添加到 URL 并重新加载页面:
alert("Submitting " + value);
location.href = '?variable=' + value;
该脚本将从头开始再次执行(可能是也可能不是您想要的),然后$_GET['variable']
将包含value。您可以使用 区分这两种情况if
:
<?php
if (isset($_GET['variable']))
{
// This is the second round
}
else
{
// This is the first time
}
// common code goes here
?>
最后,还有一些库允许混合 PHP 和 Javascript。他们基本上像上面那样工作,但他们负责繁重的工作、可变的传球、逃跑和回调。参见例如XAJAX,但还有其他几个。
您不能将 javascript 变量传递给 PHP,除非您通过提交表单(因为 JS 在客户端,而不是在服务器中)或使用 AJAX 来发送信息。
如果您想将 PHP 变量写入 JS,则必须将变量回显到 HTML/JS 代码中,如下所示:
<td><a href='#' onclick='disp_confirm(<?php echo $row->university?>)'>Delete</a></td>
或者:
function name() {
var i=<?php echo $data?>;
...
}