点击一个按钮,这个Javascript被称为:
var xmlhttp;
function register()
{
xmlhttp=GetXmlHttpObject();
alert("pass");
if(xmlhttp==null)
{
alert("Your browser does not support AJAX!");
return;
}
var url="register.php";
url=url+"?id="+uniqueid+"&name="+name+"&passwrd="+passwrd1+"&email="+email;
xmlhttp.onreadystatechange=statechanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechanged()
{
//alert("statechanged function");
if(xmlhttp.readyState==4)
{
//alert(xmlhttp.responseText);
document.getElementById("response").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
if(window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function testing()
{
document.getElementById("mainbody").innerHTML="This is my first JavaScript!";
}
然后调用这个PHP脚本:
<?php
echo "<script type=\"text/javascript\">testing();</script>";
?>
HTML有两个DIV
代码,其ID为mainbody
和response
:
<HTML>
<HEAD>
<SCRIPT SRC=javascriptname.js></SCRIPT>
</HEAD>
<BODY>
<DIV ID=mainbody>
<DIV ID=response>
</DIV>
</DIV>
</BODY>
</HTML>
我无法从我的php调用javascript。 如果有人知道我做错了什么或知道我该做什么,那将会非常有帮助。
答案 0 :(得分:3)
我不认为更改对象的innerHTML并插入脚本会导致它触发。我当然不想依赖这种行为。
为什么不在responseText上进行某种字符串比较,(例如在case语句中),然后调用相应的函数?
编辑:你也可以删除脚本标签,并在responseText上调用eval,但eval不是世界上最好的功能。
答案 1 :(得分:0)
我通过在字符串
中传递脚本标记成功完成了这项工作示例:
<?php
function outputResults($var1)
{
$jsStringOut = "
<script type='text/javascript'>
document.write('".$var1."');
</script>
";
return $jsStringOut;
}
echo outputResults("Hello Stackers");
?>