Json?

MrClog

Nuovo Utente
23 Mag 2013
25
0
1
43
Napoli
Buongiorno a Tutti.

Sto sviluppando una web application, attraverso una funzionalità della pagina ho implementato una sezione che invia attraverso AJAX un file al server, che controlla se all'interno di questo file esistono alcune stringhe e restituisce l'array.
ora Per ripassare l'array alla chiamata di AJAX come devo fare , devo utilizzare JSON, io sto lefeggendo in giro ma non ho capito bene come e quando utilizzare JSON e come applicarlo.

Tutti mi dicono che semplifica, ma al momento non ci sto capendo molto
PHP:
  var fd = new FormData();
  fd.append("flista", $("#flista")[0].files[0]);
  $.ajax({
             url:"inc/trova.inc.php",
	     type: "POST",
	     data: fd,
	     dataType: "json", 
	     success :  function(msg){
		                		$("#message").html(msg);
		                	}
           });
 

MrClog

Nuovo Utente
23 Mag 2013
25
0
1
43
Napoli
MrClog;158572 Sto sviluppando una web application ha scritto:
var fd = new FormData();
fd.append("flista", $("#flista")[0].files[0]);
$.ajax({
url:"inc/trova.inc.php",
type: "POST",
data: fd,
dataType: "json",
success : function(msg){
$("#message").html(msg);
}
});
[/PHP]
l'array che mi deve restituire è un array contente le stringhe trovate nel file e la riga in cui l'ha trovata
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Lato PHP converti il tuo array di stringhe in json tramite json_encode() e lo mandi in output.

A questo punto, la semplificazione è che jquery converte l'output in json della pagina direttamente in un oggetto javascript.

Se la tua pagina quindi ritorna come output..
Codice:
['stringa1','stringa2','stringa3']
Nella callback javascript..
HTML:
           success :  function(msg){ 
                      console.log(msg[0]); // 'stringa1'
                      console.log(msg[1]); // 'stringa2'
                      console.log(msg[2]); // 'stringa3'
                      }
 

MrClog

Nuovo Utente
23 Mag 2013
25
0
1
43
Napoli
Innanzitutto grazie per la risposta ma qui arriva il dubbio che mi affligge!

ma il mio file lo devo passare come Json o no? va bene come ho dichiarato il file da passare

Codice PHP:
PHP:
  var fd = new FormData(); 
  fd.append("flista", $("#flista")[0].files[0]); 
  $.ajax({ 
             url:"inc/trova.inc.php", 
         type: "POST", 
         data: fd, 
         dataType: "json",  
         success :  function(msg){ 
                                $("#message").html(msg); 
                            } 
           }
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Ok scusami, mi sono confuso un po nel leggere il tuo problema ed ho capito una cosa per un altra.
In teoria il codice per l'upload dovrebbe funzionare, ad eccezione del mime che è errato.

In sostanza modifica:
Codice:
dataType: "json",
In:
Codice:
dataType: "application/json",
Chiaramente il tuo file deve essere un file formattato in json con l'estensione .json, se invece è un altro tipo di file quello che vuoi caricare devi leggere il mime del file tramite javascript e impostarlo nella richiesta. (In questo momento non ti so dire se c'è una api accessibile da FormData oppure hai bisogno di usare le api FileReader)