下面是我在一个名为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);
}
}
?>
为了帮助理解,我从PHP函数testPassedValues()
调用javascript方法testAlert()
。然而,我不确定问题是什么,因为电话不成功。在Mozilla(Firebug)中,我没有发现任何问题,在Chrome->Developer Tools中,我在控制台上得到错误Uncaught Syntaxerror: Unexpected token ILLEGAL
。
我认为你还没有完全理解JavaScript和PHP在哪里以及如何执行。
PHP在服务器上运行。它生成一个HTML页面(可能包含JavaScript),然后将其发送到客户机。PHP现在已经完成了。
客户端的web浏览器然后运行JavaScript。
要调试JavaScript问题,请查看客户端实际看到的网页。
$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缺陷或错误。我把这个留给你们自己去想