2011-04-06 71 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