Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Recuperare le variabili php utilizzando javascript

    Salve a tutti, il titolo dice quasi tutto, dovrei recuperare da un file script.php tre variabili chiamate, $id_bacheca, $mex_utente, $avatar, e faccio in questo modo:



    codice:
    function Update()
    {	
      return Request();
    }
    window.setTimeout("Update()", 900) 
    var XMLHTTP;
    
    function Request()
    {
      XMLHTTP = GetBrowser(ChangeStatus);
      XMLHTTP.open("GET", "script.php", true);
      XMLHTTP.send(null);
      window.setTimeout("Request()", 500) 
    }
    function ChangeStatus()
    {
      if (XMLHTTP.readyState == 4)
      {
    	 
        var R = document.getElementById("contenitore");
    	var response = XMLHTTP.responseText;	
            response = XMLHTTP.responseXML.documentElement;       
    
    //errore che mi esce quando esegue lo script: ( uncaught TypeError: Cannot read property'documentElement' of null)
    
    	idArray = response.getElementsByTagName("id_bacheca");
    	messageArray = response.getElementsByTagName("mex_utente");
    	avatarArray = response.getElementsByTagName("avatar");
    	for(var i=0; i<idArray.length; i++){
    		var id = idArray.item(i).firstChild.data.toString();
    		var message = messageArray.item(i).firstChild.data.toString();
    		var avatar = avatarArray.item(i).firstChild.data.toString();
    		var htmlMessage="";
    		htmlMessage +="<div id=\"contenuto_messaggio\">";
    		htmlMessage +="<div id=\"avatar_messages\">[img]+ avatar + [/img]</div>";
            htmlMessage +="<div class=\"contenuto_bac\"><div id=\"elimina_messaggio\"><input type=\"button\" onclick=\"delete_message("+id+")\" id=\"pulsante_elimina\" value=\"x\"/></div>";
            htmlMessage +="<div class=\"contenuto_contenuto\">"+message+"</div>";
            htmlMessage +="<div id=\"pulsante_commenti\"><input type=\"button\" id=\"pulsante_comment\" value=\"Commenti\"  /></div></div>"; 
            R.innerHTML=htmlMessage;
    	}
      }
    }
    function GetBrowser(FindBrowser)
    {
      if (navigator.userAgent.indexOf("MSIE") != (-1))
      {
        var Class = "Msxml2.XMLHTTP";
        if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
        {
          Class = "Microsoft.XMLHTTP";
        } 
        try
        {
          ObjXMLHTTP = new ActiveXObject(Class);
          ObjXMLHTTP.onreadystatechange = FindBrowser;
          return ObjXMLHTTP;
        }
        catch(e)
        {
          alert("attenzione: l'ActiveX non sarà eseguito!");
        }
      }
      else if (navigator.userAgent.indexOf("Mozilla") != (-1))
      {
        ObjXMLHTTP = new XMLHttpRequest();
        ObjXMLHTTP.onload = FindBrowser;
        ObjXMLHTTP.onerror = FindBrowser;
        return ObjXMLHTTP;
      }
      else
      {
        alert("Il browser che stai utilizzando non supporta questa funzionalita");
      }
    }
    Qualcuno può aiutarmi a risolvere questo problema, ringrazio anticipatamente per la risposta

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    presumo che quello che recuperi da php è una stringa in formato xml, quindi non un xml... se è cosi devi effettuare il parse della stringa recuperata con XMLHTTP.responseText

  3. #3

    Re: Recuperare le variabili php utilizzando javascript

    Grazie per la risposta, ho corretto ma ora sorge un nuovo errore

    codice:
    function Update()
        var R = document.getElementById("contenitore");
    	var response = XMLHTTP.responseText;	
            response = XMLHTTP.responseText.documentElement;  
    	idArray = response.getElementsByTagName("id_bacheca");
    //Errore:(uncaught TypeError: Cannot call method 'getElementsByTagName' of undefined)
    	messageArray = response.getElementsByTagName("mex_utente");
    	avatarArray = response.getElementsByTagName("avatar");	
      
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    codice:
    response = new DOMParser().parseFromString(XMLHTTP.responseText,"text/xml");

  5. #5
    ho cambiato la stringa e non mi da nessun errore, ma non stampa anche nulla, a causa del ciclo for, perchè idarray è vuoto posto il codice sia js che php

    codice:
    var R = document.getElementById("CHAT");
    	var response = XMLHTTP.responseText;	
        response = new DOMParser().parseFromString(XMLHTTP.responseText,"text/xml");
    	idArray = response.getElementsByTagName("id_bacheca");
    	messageArray = response.getElementsByTagName("mex_utente");
    	avatarArray = response.getElementsByTagName("avatar");
    	for(var i=0; i<idArray.length; i++){
    		var id = idArray.item(i).firstChild.data.toString();
    		var message = messageArray.item(i).firstChild.data.toString();
    		var avatar = avatarArray.item(i).firstChild.data.toString();
    var htmlMessage="<div id=\"contenuto_messaggio\"><div id=\"avatar_messages\">[img]+ avatar + [/img]</div><div class=\"contenuto_bac\"><div id=\"elimina_messaggio\"><input type=\"button\" onclick=\"delete_message("+id+")\" id=\"pulsante_elimina\" value=\"x\"/></div><div class=\"contenuto_contenuto\">"+message+"</div><div id=\"pulsante_commenti\"><input type=\"button\" id=\"pulsante_comment\" value=\"Commenti\"  /></div></div>";
            R.innerHTML=htmlMessage;
    	}

    Codice PHP:

    header
    ('Content-type: text/html;charset=latin1_swedish_ci');
    session_start();
    include(
    'modulo/database.inc');    
            
                
    $db=mysql_connect($ip_host$user_host$pass_host) or die("parametri errati");
    $name=mysql_select_db($name_host)  or die("database inesistente");
    $sql "SELECT * FROM bacheca b, user u where  b.numero_bacheca =  '" $_SESSION['ID'] . "' && b.id_users_bacheca = u.id_user order by b.data_messaggio_b desc";
    $sql_res = @mysql_query($sql)or die (mysql_error());
    if(@
    mysql_num_rows($sql_res)>0)
    {
        
      while (
    $fetch = @mysql_fetch_array($sql_resMYSQL_ASSOC))
      { 
      
    $id_bacheca $fetch['ID_BAC'];     
      
    $mex_utente stripslashes($fetch['messaggio_b']);
      
    $avatar=$fetch['avatar'];
      } 
    }else{
      echo 
    'Inserisci dei nuovi messaggi.';
    }
    @
    mysql_close(); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non stai restituendo nulla da php

  7. #7
    le variabili php sono piene, ho controllato, ma passarle alle variabili javascript che mi sfugge qualcosa

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    per passare un dato da php a js basta utilizzare l'istruzione echo, per passare tutti e tre gli array ti consiglio di creare un struttura dati che li contenga, un json in questo caso credo sia ottimo, qui trovi come fare...

  9. #9
    in effetti vorrei passare tutti e tre gli array , perchè tramite javascript devo mettere in un contenitore l'ultimo messaggio lasciato da un utente e poi vedere se ci sono nuovi messaggi

  10. #10
    ok ho fatto in questo modo:

    Codice PHP:
    header('Content-type: text/html;charset=latin1_swedish_ci'); 
    session_start(); 
    include(
    'modulo/database.inc');     
             
                 
    $db=mysql_connect($ip_host$user_host$pass_host) or die("parametri errati"); 
    $name=mysql_select_db($name_host)  or die("database inesistente"); 
    $sql "SELECT * FROM bacheca b, user u where  b.numero_bacheca =  '" $_SESSION['ID'] . "' && b.id_users_bacheca = u.id_user order by b.data_messaggio_b desc"
    $sql_res = @mysql_query($sql)or die (mysql_error()); 
    if(@
    mysql_num_rows($sql_res)>0

         
      while (
    $fetch = @mysql_fetch_array($sql_resMYSQL_ASSOC)) 
      { 
     
    $id_bacheca $fetch['ID_BAC'];      
      
    $mex_utente stripslashes($fetch['messaggio_b']); 
      
    $avatar=$fetch['avatar']; 

    $arraypar = array('id_bacheca' => $id_bacheca'mex_utente' => $mex_utente'avatar' => $avatar);

    echo 
    json_encode($arraypar); 
     
      }  
    }else{ 
      echo 
    'Inserisci dei nuovi messaggi.'

    @
    mysql_close(); 
    ora per recuperare l'array come faccio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.