Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503

    Ciclare su risposta json

    Tramite una chiamata AJAX recupero delle informazioni dal db, le metto in una struttura in formato JSON che ha questo aspetto
    codice:
    [
    {"id":"1", "formato":"A4", "h":"297", "l":"210"}
    {"id":"2", "formato":"A5", "h":"210", "l":"148"}
    {"id":"3", "formato":"A6", "h":"148", "l":"105"}
    ]
    e, per adesso, voglio semplicemente stampare i dati formattandoli in modo semplice (poi andranno messi in una select).

    Il codice che uso per recuperare i dati l'ho preso da un libro che ho qui con me, ma non funziona
    codice:
    if (mypostrequest.status == 200 || window.location.href.indexOf("http") == -1)
    {
    	var json = mypostrequest.responseText;
    	var arr = eval(json);
    	var result = '';
    	for(var i=0;i<arr.length;i++){
    		result += "id: "+arr[i].id+" - formato: "+arr[i].formato+" - h: "+arr[i].h+" - l: "+arr[i].l+"
    ";
    	}
    	document.getElementById("risultato").innerHTML = result;
    }
    Mettendo degli alert ho capito che a non funzionare è
    var arr = eval(json);

    considerate che la variabile json contiene il codice corretto, ho provato a stamparla.
    Quale è il modo giusto di procedere?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Niente, a parte l'essermi dimenticato alcune , che ho sistemato, continua a non funzionare.

    Penso però che dipenda dal fatto che il codice di risposta proviene da una funzione che ho implementato con Joomla (sto realizando un componente).
    Sembra che la risposta non sia riconosciuta come stringa ed eval() fallisce.

    se nel codice javascript, alla variabile json invece del responseText metto

    codice:
    var json = "[ {id:"1", formato:"A4", h:"297", l:"210",}, {id:"2", formato:"A5", h:"210", l:"148",}, {id:"3", formato:"A6", h:"148", l:"105",} ]";
    eval() funziona ed i dati vengono formattati e stampati come specificato nel ciclo for.

    Come posso fare ad essere sicuro che la risposta proveniente dalla funzione php sia riconosciuta come stringa?

    toString() non mi risolve il problema.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo devi trattare json come un array da splittare per avere i singoli risultati oppure usi parseJSON di jquery molto più semplice.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Grazie, risolto.

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.