在Javascript中传递PHP变量,反之亦然

时间:2012-11-21 10:01:12

标签: php javascript variables parameters

  

可能重复:
  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>";

请帮帮我。

4 个答案:

答案 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?>;
    ...
}