Newsgroup: it.comp.lang.javascript
Titolo: ajax e risultati multipli da php

salve a tutti,
ho un problemino a far digerire ad javascript un risultato multiplo che mi 
arriva da php... mi spiego... da php do in output questo:
echo "__input__|artdesc1|valore1\n";
echo "__input__|artdesc2|valore2\n";
echo "__input__|artvat|valore3\n";
e la parte js che si occupa di gestire la risposta e' questa:
function handleResponse() {
	if(http.readyState == 4){
 		var response = http.responseText;
  	var update = new Array();
   	if(response.indexOf('|' != -1)) {
  		update = response.split('|');
  		if(update[0]=='alert'){
  			alert(update[1]);
  		}else if(update[0]=='__message__'){
                                   ....
  		}else if(update[0] =='__input__'){
  			document.getElementById(update[1]).value = update[2]; 
<<<<<<<<<<---------------------
  		}else{
  			....  		}
		}
	}
}
il problema e' che la funzione js mi gestisce solamente il valore1, come 
dovrei fare per farli gestire anche gli altri valori?
grazie a tutti,
dade 

   if(update[0]=='alert'
passare a XML e sbatterti
esempio XML:
$uutplace  = "<?xml version=\"1.0\" encoding=\"UTF-8\"  ?>\r\n";
  $uutplace .= "<kkdb>\r\n";
                $sql444 = "SELECT *, date_format(ra_pubblic,\"%d-%m-%Y\") AS
pubbl  FROM ".$table['rass']."rassegna WHERE RA='".$POST['id']."';";
                $result444 = $db->sql_query($sql444);
                $row444 = $db->sql_fetchrow($result444);
  $uutplace .= "<ra>".$row444['RA']."</ra>\r\n";
  $uutplace .=
"<titolo>".htmlspecialchars($row444['ra_titolo'])."</titolo>\r\n";
      if($row444['ra_tx']!=""){
  $uutplace .= "<tx>".$row444['ra_tx']."</tx>\r\n";
       }else{
  $uutplace .= "<tx>TX</tx>\r\n";
       }
  $uutplace .=
"<texto>".htmlspecialchars($row444['ra_texto'])."</texto>\r\n"; //
       if($row444['pubbl']!=""){
  $uutplace .= "<pubblic>".$row444['pubbl']."</pubblic>\r\n";
       }else{
  $uutplace .= "<pubblic>dd-mm-YYYY</pubblic>\r\n";
       }
       if($row444['ra_ar']!=""){
  $uutplace .= "<ar>".$row444['ra_ar']."</ar>\r\n";
       }else{
  $uutplace .= "<ar>AR</ar>\r\n";
       }
  $uutplace .= "</kkdb>\r\n";
echo $uutplace;
esempio script (ha qualche errore ma funziona)
function xmlhttpPost(idd) {
    var strURL;
    var content;
    var oggh;
    var setta;
    strURL = tinyMCE.documentBasePath + '/' +
tinyMCE.getParam('savajaxurl',null) + '&plg=AJXOPEN';
    // strURL = tinyMCE.getParam('savajaxurl',null) + '&plg=AJXOPEN';
          // alert(strURL);
    var xmlHttpReq = false;
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    // per tutte le altre versioni di IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    file://document.write(strURL);
    xmlHttpReq.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
               // tinyMCE.selectedInstance.setHTML('ucc' +
xmlHttpReq.responseText);
                // alert(xmlHttpReq.responseText);    read xml output
                xmlpp(xmlHttpReq.responseText);
         }
         else{
         // alert(self.xmlHttpReq.readyState);
            tinyMCE.selectedInstance.setHTML('LOADING');
         }
    }
  xmlHttpReq.send(getquerystring(idd));
   return true;
}
function getquerystring(idd){
    contentcd = '&id=' + idd;
     return contentcd;
}
function echi(idd){
 ddd = xmlhttpPost(idd);
 // setInterval('window.close()', 2000);
}
function xmlpp(tex) {
if (window.ActiveXObject)
  {
  var doc=new ActiveXObject("Microsoft.XMLDOM");
  doc.async="false";
  doc.loadXML(tex);
  }
// code for Mozilla, Firefox, Opera, etc.
else
  {
  var parser=new DOMParser();
  var doc=parser.parseFromString(tex,"text/xml");
  }
var inst = tinyMCE.selectedInstance;
var formObj = inst.formElement.form;
var xccc=doc.documentElement;
/*  formObj.elements[4].value = xccc.childNodes[6].childNodes[0].nodeValue
// pubblic
  tinyMCE.selectedInstance.setHTML(xccc.childNodes[5].childNodes[0].nodeValu
e) // texto
  formObj.elements[1].value = xccc.childNodes[4].childNodes[0].nodeValue  //
titolo
  formObj.elements[2].selectedIndex =
xccc.childNodes[3].childNodes[0].nodeValue // ar
  formObj.elements[3].selectedIndex =
xccc.childNodes[2].childNodes[0].nodeValue // tx
                 file://xccc.childNodes[1].childNodes[0].nodeValue // RA
                 */
 for(var x=0,objs=formObj.elements;x<objs.length;x++){
    objs[x].tagName
  // if(xccc.getElementsByTagName(objs[x].name)[0].firstChild.nodeValue!=
undefined){
  switch(objs[x].tagName){
          case "INPUT":
                 formObj.elements[x].value =
xccc.getElementsByTagName(objs[x].name)[0].firstChild.nodeValue;
          break;
          case "SELECT":
                 var current_season =
xccc.getElementsByTagName(objs[x].name)[0].firstChild.nodeValue
                 for(var i=0;i<formObj.elements[x].length;i++){
                   if(formObj.elements[x].options[i].value ==
current_season){
                      formObj.elements[x].options[i].selected = true;
                    }
                 }
          break;
          case "CHECKBOX":
          break;
          case "RADIO":
          break;
     }
  // }
         tinyMCE.selectedInstance.setHTML(xccc.getElementsByTagName('texto')
[0].firstChild.nodeValue);
 }
return true;
}


sei troppo avanti per me :) soluzioni piu' semplici?
grazie 1000
dade 

   	var update = new Array();
var elenco=response.split("~");
for(var x=0;x<elenco.length;x++) {
 response=elenco[x];
 //da qua ti spazzi il tuo response più o meno come hai già fatto
} //ciclo
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 }
-- 
Nando, A-postumo della Prova
*Uso i pesci di Babele*

 mi arriva da php... mi spiego... da php do in output questo:
Usa JSON. In PHP 5.2 e` integrato nel linguaggio, nei precedenti e` 
disponibile un modulo da caricare o sotto forma di una classe/libreria in 
PHP puro.
Lato JS trovi diversi script che te lo traducono.
Per farti un esempio, da PHP puoi avere
$res = array (
  "input" => array (
    array ("artdesc1", "valore1"),
    array ("artdesc2", "valore2"),
    array ("artdesc3", "valore3"),
  )
);
print json_encode($res);
E su javascript avrai una funzione corrispondente:
var res = json_decode(http.responseText);
che ti ricrea l'array in formato JS.
bye.

 wrote in message 
news:20070705174831.a741...@libero.it...

perfettissimooo!!! Cosi' capisco anche il codice :P  devo ammettere che non 
c'avevo pensato a fare un for splittando sulle righe :)
grazie 1000
Dade 

 wrote in message 
news:5f4jg0F...@mid.individual.net...

interessante.... hai tutorial in italiano da consigliarmi per impararlo? 
oppure mi affido a google ?
grazie
Dade 

 oppure mi affido a google ?
Non c'e` granche` da imparare, a parte quello che ti ho detto sopra.
Qui trovi un po' di info e di link, comunque:
http://www.json.org/
Bye.