php / js / ajax问题:一次显示很多照片

时间:2014-01-04 18:20:56

标签: javascript php ajax

我试图用一些ajax创建一个库应用程序。它必须以这种方式工作:当您键入要上传的图像的标题时,出现的是一个动态图库,其中包含标题的照片,其中包含您当前在文本输入中键入的字符串。除了显示图像外,一切都很好。这是代码:

js file:

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject(){
   var xmlHttp;

   if(window.ActiveXObject){ //IE
      try{
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
         }catch(e){
            xmlHttp =false;
            }
      }else{  //other browser
         try{
            xmlHttp= new XMLHttpRequest();
            }catch(e){
               xmlHttp =false;
               }
         }
      if(!xmlHttp)
            alert("cos nie tak!");
      else
            return xmlHttp;
   }

function process(){   
    if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
      typedText=encodeURIComponent(document.getElementById("title").value );
      xmlHttp.open("GET", "ajax.php?text="+typedText, true);
      xmlHttp.onreadystatechange = handleServerResponse;
      xmlHttp.send(null);
      }else{
         setTimeout('process()', 1000);
         }
   }


function handleServerResponse(){
   if(xmlHttp.readyState==4){
            if(xmlHttp.status==200){
               xmlResponse=xmlHttp.responseXML;
               xmlDocumentElement=xmlResponse.documentElement;
               message=xmlDocumentElement.firstChild.data;
               document.getElementById('underInput').innerHTML=message;
               setTimeout('process()', 1000);
         }else{
            alert('wrong');
            }
      }
   }

我设法让变量message拥有所需图片的网址列表。它看起来像是:image1.jpg image2.jpg image3.jpg ...etc。 我正在努力的是使用javascript来解析这个字符串,并使用javascript在div id="underInput"文件的index.php节点中显示这些图像。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以尝试按照以下类似的空格分割字符串图像名称: 在handleServerResponse函数中:

//"image1.jpg image2.jpg image3.jpg";
message = xmlDocumentElement.firstChild.data;
var image_list = message.split(' ');

for (var i in image_list) {
    var img = document.createElement("img");
    img.src = image_list[i];
   document.getElementById('underInput').appendChild(img);
}

但是,我建议你使用来自服务器的JSON数据而不是简单的字符串,它非常简单,不需要拆分它,否则你可以管理数组和对象,这是最有效的。

你可以在php中输出一个json:

$myarray = array('image1.jpg', 'image2.jpg', 'image3.jpg');
echo json_encode($myarray);