У меня есть следующий код, который является основной частью моего небольшого приложения 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 или query никогда не будут переданы одновременно, только один из них будет передан.
edit: Мне также интересно, имеет ли смысл, чтобы функция makewindows принимала параметр или оставалась как есть. Существуют ли преимущества и недостатки для каждого подхода?