我有一个名为check1()
的JavaScript函数,该函数通过ajax连接到服务器端并返回结果。这会发生3次,因此check1被调用了3次。如果结果正常,则调用函数htmlnow1。如果结果不正确,请致电htmlnow2。第一个我使用$ html =“ hello 1”返回$ html代码。第二个功能我使用$ html =“ hello 2”。第一次触发htmlnow1()
。第二次和第三次htmlnow2()
被触发。因此,它应该向我展示逻辑上的思考,第一次是hello 1输出,另外两次是hello 2输出,因此输出应该是hello 1 hello 2 hello 2。问题是在我的页面上我每次都看到两个hello 2。所以我已经输出了hello 2 hello 2 hello 2,尽管我检查了警告框,仅第二次和第三次触发了htmlnow2()函数。有什么想法可能会发生这种情况吗?任何帮助表示赞赏!
<script type="text/javascript">
function htmlnow1()
{
<?php
$html=" hello 1";
?>
}
function htmlnow2()
{
<?php
$html=" hello 2";
?>
}
function check1()
{
$.ajax({
url: "/ok/alert.php",
type: "post",
dataType: 'json',
data: {
reg: "success",
checkifexist: 1
},
success:function(response)
{
var JsonObject=response['checkifexist'];
if (JsonObject==1)
{
alert('text ' + JsonObject);
htmlnow();
}
else if (JsonObject==0)
{
alert('text '+JsonObject);
htmlnow1();
}
},
error: function(x,y,z){
alert('An error has occurred:\n' + x + '\n' + y + '\n' + z);
}
});
}
</script>
<script>
window.onload=check1();
</script>
答案 0 :(得分:0)
在服务器端,将生成HTML页面,包括发送到客户端以运行的javascript代码。 Javascript无法创建和运行php代码,它只能向服务器发送http请求以在其中运行php代码。 php代码不在客户端。
因此,服务器端将创建空函数htmlnow1()
和htmlnow2()
,将$html
变量设置为hello 1
,然后立即将其重写为hello 2
。调用空函数无效。