php
  • javascript
  • variables
  • parameters
  • 2012-11-21 65 views 0 likes 
    0

    可能重复:
    Pass a PHP string to a Javascript variable (and escape newlines)通过PHP变量,反之亦然

    谁能告诉我方法PHP变量传递到JavaScript功能,并且还JavaScript变量到PHP脚本。这里是我想要传递php变量的示例行,但是当我正在执行该功能时未执行

    echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>"; 
    

    请帮帮我。

    +0

    反之亦然不可能的,但在JavaScript中的PHP是:'disp_confirm(“'。$ row-> university。'”)',如果你使用单引号echo你的变量将不会被解析。 –

    +0

    反过来也是可能的,但要复杂得多(因为Javascript只会在PHP结束后才开始执行)。您只需使用AJAX调用PHP脚本,并将该变量作为CGI变量转发。 –

    +0

    @SF。在OP的情况下反之亦然是不可能的。 –

    回答

    0

    您需要引用字符串中的onclick:

    echo "<td><a href='#' onclick='disp_confirm(\"{$row->university}\")'>Delete</a></td>"; 
    
    0

    加括号,并会工作:

    echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>"; 
    
    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错误。如果是这样,引用与逃单引号的值)

    UPDATE(感谢Mihai Iorga):您必须考虑变量如何与Javascript代码交互。引用字符串是不够的,因为变量本身可能包含引号。因此,如果你的大学是“Shi'Kahr大学”,那么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,但还有其他几种。

    0

    除非通过提交表单(因为JS位于客户端,而不是服务器)或使用AJAX发送信息,否则不能将JavaScript变量传递给PHP。

    在你想要写PHP变量到JS,你必须呼应可变进德HTML/JS代码,就像这样:

    <td><a href='#' onclick='disp_confirm(<?php echo $row->university?>)'>Delete</a></td> 
    

    或:

    function name() { 
        var i=<?php echo $data?>; 
        ... 
    } 
    
    相关问题