2014-01-17 153 views
0

我使用下面的代碼從php腳本調用javascript函數。它不工作,而我在JavaScript($味精)中添加PHP變量。請幫助我做到這一點。使用php變量調用javascript函數

if (isset($_GET['Error'])) { 
    $msg =$_GET["Error"]; 
    echo '<script type="script.php">validate("Error",$msg);</script>'; 
} 
+0

'<腳本類型= 「的script.php」>'不是爲['type'屬性]有效值( http://www.w3schools.com/tags/att_script_type.asp)。更改'script.php' –

+0

echo''不能調用一個php腳本。 它應該讀取類似於但我必須知道驗證函數確實可以確定 無論如何,您應該將類​​型attr關閉。它現在假設,但如果你不得不它是type =「text/javascript」 – ZombieBunnies

+0

不適合我。 – user3085540

回答

1

您必須引用$msg,否則它將在javascript中出現語法錯誤。 而type是無意義的。

由於味精來自$_GET,所以不要忘了逃避它。

if (isset($_GET['Error'])) { 
    $msg =$_GET["Error"]; 
    echo '<script>validate("Error", "'.htmlspecialchars($msg).'");</script>'; 
} 
+0

對於'htmlspecialchars($ msg)'+1。 – Vinay

+0

不夠好,但。默認情況下,它會讓'''經過未編碼,然後斷開JS語法。 'json_encode(htmlspecialchars(...))'會做的。 –

+0

@MarcB即使'''被'''引用? – xdazz

0

相反的嵌入式腳本的,這應該工作:

<html> 
    <head> 
     <script type="text/javascript"> 
      function testMe(x){ 
       alert(x); 
      } 
     </script> 
    </head> 
<body> 
<?php 
    $phpVar = 'I am a PHP variable'; 

    echo "<a href=\"#\" onclick=\"javascript:testMe('" . $phpVar . "');\">Click Me</a>"; 
?> 
</body> 
<html>