php - javascript 问题 - 包括 php

标签 php javascript ajax

我粘贴了下面的代码,该代码作为小型 ajax 应用程序的核心。以前这工作得很好,makewindows 实际上显示了一个包含 artcile_desc 结果的弹出窗口。然而,我在该函数之前似乎有一个错误,因为现在只输出实际的 php 代码。这不是我的服务器设置的问题,因为我是管理员,而且这一点没有改变。

我在 Firebug 中收到以下错误,但我不确定它们的含义。

unterminated string literal
onclick(click clientX=52, clientY=50)1GmRZ%2F...D9g%3D%3D (line 2)
[Break on this error] child1.document.write("<br />\n
1GmRZ%2F...D9g%3D%3D (line 2)
updateByQuery is not defined
onclick(click clientX=29, clientY=17)CLQWYjW1...WlQ%3D%3D (line 2)
[Break on this error] updateByQuery("Layer3", "Ed Hardy");

var xmlHttp
var layername
var url
function update(layer, url) {
    var xmlHttp=GetXmlHttpObject(); //you have this defined elsewhere

    if(xmlHttp==null) {
        alert("Your browser is not supported?");
    }

    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
            document.getElementById(layer).innerHTML=xmlHttp.responseText;
        } else if (xmlHttp.readyState==1 || xmlHttp.readyState=="loading") {
            document.getElementById(layer).innerHTML="loading";
        }

       //etc
    }

    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}


function updateByPk(layer, pk) {
   url = "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random();
   update(layer, url);
}


function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }catch (e)
    {

        try
        {
                xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}

    }
return xmlHttp;
}
function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

无论我尝试什么,makewindows 函数都只是将 php 代码输出为 html 源,而不是 php 代码的结果。这以前工作得很好,我不确定我做了什么改变导致了这种行为。

我现在已经粘贴了所有代码。调用 updateByQuery 的链接会生成错误,导致 makewindows 无法正确解析..我认为。

编辑:当我使用此代码时,php 正在被解析:

function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

但不是上面的代码

php的结果是这样的:

child1.document.write("<br />
58<b>Notice</b>: Undefined variable: row2 in <b>C:\Programme\EasyPHP 2.0b1\www\records4\fetchlayers.js</b> on line <b>57</b><br />
59null");

这会导致错误

最佳答案

我不知道 Firebug 提示什么,但我立即看到了其他东西。

您无法从 Javascript 输出 PHP 代码并期望它运行。 Javascript在浏览器中执行,PHP代码应该在服务器上执行。基本上,您向浏览器提供了一个看起来像 PHP 代码的文本文件,但浏览器不知道如何处理它。

如果您想执行 PHP 代码,请将其放入 Web 服务器上的文件中。将浏览器窗口指向服务器上的该文件,输出将显示在窗口中。

关于php - javascript 问题 - 包括 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/371072/

相关文章:

jquery - ajax微调器开始停止不起作用

php - 在 PHP 中使用 Try-catch 结构

javascript - 如何使用textarea插入html和javascript代码

javascript - Tinymce 添加链接弹窗

javascript - 通过 slider 移动更改 slider 值

javascript - 从指令触发 View 的 Controller 功能

ajax - MVC 5无效的JSON原语

php - 来自 Windows 服务器的 mysql 在线仪表板

php - PHP 中解析未知字符串长度?

javascript - Ajax Jquery 变量与 php