JavaScript函数没有响应

时间:2008-12-10 12:15:10

标签: php javascript ajax

我有以下代码,这是我的小型AJAX应用程序的核心部分。我没有得到任何错误,只是没有任何反应。我猜有一种更有效的方法可以做我想做的事情。

以下是代码:

var xmlHttp

var layername

function update(layer, part, pk, query)

{

if (part=="1")

{

$url  "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random()

}

else if (part=="2")

{

var url  "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random()

}

xmlHttp=GetXmlHttpObject()

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"

        }

    };

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

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(json_encode(<?php echo $row2["ARTICLE_DESC"]; ?>));

child1.document.close(); 

}

以及我如何从php调用函数的示例

onclick="update(\'Layer3\',\'2\','.$pk.'\',\'0\',)">'

pk或查询将永远不会同时传递,只会传递其中一个。

编辑:我也想知道makewindows函数获取参数或保持原样是否更有意义。每种方法都有优点和缺点吗?

3 个答案:

答案 0 :(得分:1)

看起来您可能有一些javascript错误:

if (part=="1")
{
   $url  "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random()
}
else if (part=="2")
{
   var url  "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random()
}

使用Firefox并打开javascript控制台以获取javascript错误,然后尝试修复它所抱怨的行。

Javascript会在遇到错误时立即停止运行。

另外,如果您还没有,请结帐firebug。伟大的工具!

答案 1 :(得分:1)

我会检查PHP正在生成的HTML。假设$ pk是一个字符串,看起来你错过了一个开头的报价。试试这个:

onclick="update(\'Layer3\',\'2\',\''.$pk.'\',\'0\',)">

答案 2 :(得分:0)

json_encode是一个PHP函数,因此您需要像这样修改该特定行:

child1.document.write(<?php echo json_encode($row2["ARTICLE_DESC"]); ?>);