2011-04-06 70 views
0

JavaScript函數下面是我在一個名爲testOne.php從PHP調用函數

<html> 
<head> 
    <script type="text/javascript"> 
      function testAlert(firstValue, secondValue) 
      { 
       alert ("Passed: "+firstValue+secondValue); 
      } 
    </script> 
</head> 
<body> 
    .... 
</body> 
</html> 

<?php 
    function testPassedValues($One, $Two) 
    { 
     echo "<input type = \"button\" onclick = \"testAlert($One[2], $Two[2])\">Click Here!</input>"; 
    } 

    $link = mysql_connect("localhost", "root", ""); 
    if (mysql_select_db("myDatabase", $link)) 
    { 
     $result = mysql_query("SELECT * FROM MYTABLE"); 
     while($currRowOne = mysql_fetch_row($result) && 
       $currRowTwo = mysql_fetch_row($result)) 
     { 
      testPassedValues($currRowOne, $currRowTwo); 
     } 
    } 
?> 

爲了幫助理解,我打電話從PHP函數testPassedValues() JavaScript方法testAlert()一個PHP文件的代碼。但是,由於通話不成功,我不確定問題是什麼。在Mozilla(Firebug)中,我沒有發現任何問題,並且在Chrome-> Developer Tools中,控制檯中出現錯誤Uncaught Syntaxerror: Unexpected token ILLEGAL

任何人都可以請幫助我在這裏的根本原因?

回答

2

最有可能的$One[2]$Two[2]的值是字符串,所以生成的HTML是:

<input type = "button" onclick = "testAlert(string one, string two)">Click Here!</input> 

這顯然是無效的JavaScript。

括起來的參數在引號:

echo "<input type = \"button\" onclick = \"testAlert('$One[2]', '$Two[2]')\">Click Here!</input>"; 

你也應該正確地逃避HTML和JavaScript和的$One[2]$Two[2]值,這樣就不會引入XSS漏洞或錯誤時,一個字符串包含apostraphe 。我會留給你弄清楚。

+0

謝謝你的建議,現在似乎已經解決了以前的問題。但是我得到一個新的錯誤信息'未捕獲的ReferenceError:testAlert未定義'。有關此錯誤的任何建議? – 2011-04-06 23:15:52

+0

那麼你錯過了上面例子中的關閉標籤,可能是導致這個問題。雖然錯誤描述了這個問題 - 單擊按鈕時,函數testAlert不存在。 – Hamish 2011-04-06 23:18:00

+0

那是我的錯。我輸入了上面的代碼,並忘記結束它。然而,實際的代碼有結尾標籤,我仍然得到相同的問題 – 2011-04-06 23:22:17

4

我不認爲你已經完全理解JavaScript和PHP在何處以及如何執行。

PHP在服務器上運行。它會生成一個HTML頁面(可能包含JavaScript),然後發送給客戶端。 PHP現在已經完成。

客戶端的Web瀏覽器然後運行JavaScript。

要調試您的JavaScript問題,請查看客戶端實際看到的網頁。如果Firebug報告問題,那就是它的位置。

+0

這正是我認爲閱讀問題 – 2011-04-06 23:16:02

+0

當你說「看看客戶實際看到的網頁」時,我沒有得到你。 PHP代碼正在使用數據庫的查詢結果更新同一頁面。點擊該按鈕不會導致網頁發生任何變化,並引發Google Chrome-> Developer Tools中提到的錯誤,而不是Firebug。 Firebug不會報告任何錯誤。 – 2011-04-06 23:25:49

+0

@ darkie15:在瀏覽器中使用「查看源代碼」功能。你不會看到任何PHP,但是產生的網頁有問題。 – Borealid 2011-04-07 00:46:01