JavaScript duyarlı değil işlevi

3 Cevap php

Benim küçük AJAX uygulamasının temel parçası olan aşağıdaki kodu var. Ben herhangi bir hata almıyorum, hiçbir şey olmuyor sadece. Ben yapmaya çalışıyorum ne yapmak için daha verimli bir yolu var olduğunu tahmin ediyorum.

İşte kod:

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(); 

}

ve ben php gelen işlevi arıyorum nasıl bir örnek

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

pk veya sorgu aynı anda geçmiş, asla sadece bir tanesi hiç geçilecek.

edit: bu makeWindows bir parametre için işlev daha mantıklı, ya da olduğu gibi kalmak istiyorum ben de merak ediyorum. Her yaklaşım için avantaj ve dezavantajları var mı?

3 Cevap

Bazı javascript hataları olabilir gibi görünüyor:

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 kullanın ve javascript hataları almak için javascript konsolunu açın, daha sonra şikayet hatları düzeltmek için çalışın.

Javascript kısa sürede bir hatayla karşılaştığında olarak durdurulacaktır.

Ayrıca, ödeme firebug değil zaten varsa. Büyük aracı!

Ben PHP oluşturuyor HTML kontrol ediyorum. $ Pk varsayarak bir açılış teklifi kaçırıyorsun gibi görünen bir dizedir. Bu deneyin:

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

json_encode bir PHP işlevi olduğunu ve bu nedenle bu kadar gibi o satır değiştirmeniz gerekir:

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