从PHP函数调用Javascript函数


Calling Javascript function from PHP function

下面是我在一个名为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()。然而,我不确定问题是什么,因为电话不成功。在Mozilla(Firebug)中,我没有发现任何问题,在Chrome->Developer Tools中,我在控制台上得到错误Uncaught Syntaxerror: Unexpected token ILLEGAL

有谁能帮我找出根本原因吗?

我认为你还没有完全理解JavaScript和PHP在哪里以及如何执行。

PHP在服务器上运行。它生成一个HTML页面(可能包含JavaScript),然后将其发送到客户机。PHP现在已经完成了。

客户端的web浏览器然后运行JavaScript。

要调试JavaScript问题,请查看客户端实际看到的网页。

如果Firebug报告了一个问题,它就在那里。

$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缺陷或错误。我把这个留给你们自己去想