从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,但是生成的网页有问题。