从PHP函数调用Javascript函数

从PHP函数调用Javascript函数,php,javascript,function,Php,Javascript,Function,下面是我在一个名为testOne.PHP <html> <head> <script type="text/javascript"> function testAlert(firstValue, secondValue) { alert ("Passed: "+firstValue+secondValue); } </script> <

下面是我在一个名为
testOne.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);
         }
     }
?>

函数testAlert(第一个值,第二个值)
{
警报(“已通过:“+firstValue+secondValue”);
}
....
为了帮助理解,我从PHP函数
testPassedValues()
调用了一个javascript方法
testAlert()
。但是,我不确定问题出在哪里,因为电话打不通。在Mozilla(Firebug)中,我没有发现任何问题,在Chrome->Developer Tools中,我在控制台中得到了错误
Uncaught Syntaxerror:Unexpected token liked


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

最有可能的是
$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>";
echo“点击这里!”;

您还应该正确地避开HTML和JavaScript的
$One[2]
$Two[2]
值,以便在字符串包含撇号时不会引入XSS缺陷或错误。我将让您自己去弄清楚。

最有可能的是
$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>";
echo“点击这里!”;

您还应该正确地避开HTML和JavaScript的
$One[2]
$Two[2]
值,以便在字符串包含撇号时不会引入XSS缺陷或错误。我将让您自己去弄清楚。

我认为您还没有完全理解JavaScript和PHP在何处以及如何执行

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

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


要调试JavaScript问题,请查看客户端实际看到的网页。如果Firebug报告了一个问题,那就是问题所在。

我认为您还没有完全理解JavaScript和PHP在何处以及如何执行

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

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


要调试JavaScript问题,请查看客户端实际看到的网页。如果Firebug报告了一个问题,那就是问题所在。

感谢您的建议,它现在似乎已经解决了前面的问题。但是我得到了一条新的错误消息
未捕获引用错误:testAlert未定义
。关于这个错误有什么建议吗?在上面的例子中,您缺少了一个结束标记,可能是这导致了这个问题。这个错误描述了这个问题——当点击按钮时,函数testAlert不存在。这是我的错。我把上面的代码打了出来,忘了结束它。然而,实际的代码有结束标记,我仍然得到相同的问题谢谢你的建议,它现在似乎已经解决了前面的问题。但是我得到了一条新的错误消息
未捕获引用错误:testAlert未定义
。关于这个错误有什么建议吗?在上面的例子中,您缺少了一个结束标记,可能是这导致了这个问题。这个错误描述了这个问题——当点击按钮时,函数testAlert不存在。这是我的错。我把上面的代码打了出来,忘了结束它。然而,实际的代码有结尾标记,我仍然得到相同的问题。当你说“看看客户实际看到的网页”时,我没有得到你的答案。PHP代码正在使用数据库中的查询结果更新同一页面。单击该按钮不会对网页造成任何更改,并抛出Google Chrome->Developer Tools中提到的错误,而不是Firebug。Firebug没有报告任何错误。@darkie15:在浏览器中使用“查看源代码”功能。你不会在那里看到任何PHP,但是生成的网页有问题。当你说“看看客户端实际看到的网页”时,我没有理解。PHP代码正在使用数据库中的查询结果更新同一页面。单击该按钮不会对网页造成任何更改,并抛出Google Chrome->Developer Tools中提到的错误,而不是Firebug。Firebug没有报告任何错误。@darkie15:在浏览器中使用“查看源代码”功能。您不会在那里看到任何PHP,但是生成的网页有问题。