php
  • javascript
  • variables
  • parameters
  • 2012-11-21 67 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?>; 
        ... 
    } 
    
    相關問題