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