来自php脚本的数据在javascript错误输出

I have a javascript function called check1() that connects to server side via ajax and returns results. This occurs three times so check1 is called three times. If result is ok i then call function htmlnow1 . If result is not ok i call htmlnow2. First one i use $html=”hello 1” to return the $html code . Second function i use $html=”hello 2” . The first time htmlnow1() is triggered. The second and third time htmlnow2() is triggered. So it should show me logically thinking the first time hello 1 output and the other two times hello 2 output so the output should be hello 1 hello 2 hello 2 . The issue is that on my page i see both hello 2 everytime. So i have output hello 2 hello 2 hello 2 although i check with alert box that only the second and third time is triggered the htmlnow2() function. Any thoughts why this might happening? Any help appreciated!

    <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:
' + x + '
' + y + '
' + z);
            }
            });

            }

            </script>
<script>
window.onload=check1();
</script>

1个回答



在服务器端,生成HTML页面,包括发送到客户端以运行的javascript代码。 Javascript无法创建和运行php代码,它只能向服务器发送http请求以运行php代码。 php代码不在客户端。</ p>

因此服务器端创建空函数 htmlnow1()</ code>和 htmlnow2()</ code>,集 $ html </ code>变量到 hello 1 </ code>并立即将其重写为 hello 2 </ code>。 调用空函数无效。</ p>
</ div>

展开原文

原文

On the server side, the HTML page is generated, including the javascript code that is sent to client to be run. Javascript can not create and run php code, it can only send http request to server to run php code there. The php code is not at client side.

So the server side creates empty functions htmlnow1() and htmlnow2(), sets the $html variable to hello 1 and immediately rewrites it to hello 2. Calling the empty functions has no effect.

doucong1268
doucong1268 你不能将php变量传递给javascript。 您可以通过http请求将php输出传递给javascript。 你可以将url:设置为另一个php脚本,它回显你想要的任何输出,输出通过ajax调用转到响应参数。 还看看这个答案
一年多之前 回复
doushao8399
doushao8399 我问,因为我必须去服务器端,然后得到结果和显示。 这发生了三次。
一年多之前 回复
douluo1330
douluo1330 嗯我将如何在我的$ html代码上显示它? $ html是php,响应是javascript。 我将如何将一个变量传递给另一个变量? $ html是构建页面的代码......
一年多之前 回复
dourong2015
dourong2015 我不确定你的PHP代码中的$ html变量是什么,但你可以在alert.php脚本中回显“hello 1”。 这应该传递给成功函数中的响应参数。
一年多之前 回复
dongwei7245
dongwei7245 k ...那么应该如何改变这个例子来实现正确的输出呢? 我需要根据服务器端的结果显示不同的html输出。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐