Функция JavaScript не отвечает - PullRequest
0 голосов
/ 10 декабря 2008

У меня есть следующий код, который является основной частью моего небольшого 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 или запрос никогда не будут переданы одновременно, будет пропущен только один из них.

edit: Мне также интересно, имеет ли смысл для функции makewindows принимать параметр или оставаться таким, как есть. Есть ли преимущества и недостатки для каждого подхода?

Ответы [ 3 ]

1 голос
/ 10 декабря 2008

Похоже, у вас могут быть ошибки в 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 голос
/ 10 декабря 2008

Я бы проверил HTML, который генерирует PHP. Предполагая, что $ pk является строкой, похоже, что вы пропустили начальную кавычку. Попробуйте это:

onclick="update(\'Layer3\',\'2\',\''.$pk.'\',\'0\',)">
0 голосов
/ 10 декабря 2008

json_encode - это PHP-функция , поэтому вам нужно изменить эту строку следующим образом:

child1.document.write(<?php echo json_encode($row2["ARTICLE_DESC"]); ?>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...