Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    residenza
    Bologna
    Messaggi
    31

    AJAX: ricevere vettore da PHP

    Ciao a tutti ragazzi,
    vengo a voi con una questione abbastanza "importante". Ho una pagina web che, quando selezione il campo "regioni" fa una chiamata ajax ad una pagina PHP che esegue una query che ritorna, per quella regione, tutte le province ad essa connesse. Ora, la chiamata va e funziona correttamente, riesco anche a visualizzare un valore di ritorno dalla pagina PHP ma, domando, se avessi un array? Mi spiego meglio, la pagina PHP stampa echo 'gatto' e la chiamata AJAX, se va a buon fine, farà un alert(riposta) che mostrerà gatto, ma se volessi mostrare anche "cane", "gatto", "mucca", ecc.? Ho visto che si può fare qualcosa di simile con JSON ma, al momento, non mi è riuscito di trovare un tutorial che funzionasse. Potete darmi una mano?

    Qui sotto vi posto il mio esempio:

    codice:
    $(document).ready(function() {    "use strict";	
    	//EFFETTUO CHIAMATA AJAX
    	$("#formInserisciAnnuncio").submit(function(){  
    		//RECUPERO LA REGIONE
    		var regione = $("#regioni").val();
    		//SE REGIONE E' STATO VALORIZZATO, FACCIO LA CHIAMTA AJAX, ALTRIMENTI NON FACCIO NULLA
    		if (regione == ""){
    			//CONTINUE
    		}else{
    			//CHIAMA AJAX PER SELEZIONARE LE PROVINCE
                            $.ajax({
                                // definisco il tipo della chiamata
                                type: "POST",
                                // specifico la URL della risorsa da contattare
                                url: "/anagrafica.php",
                                // passo dei dati alla risorsa remota
                                data: "regione=" + regione,
                                // definisco il formato della risposta
                                dataType: "html",
                                // chiamata con successo
                                success: function(risposta){
                                    alert(risposta);
                                },
                                // chiamata fallita
                                error: function(){
                                alert("IMPOSSIBILE RECUPERARE LE PROVINCE");
                                }
                            })
    		
    		}
    		//return false;
    	});
    	
    });
    mentre la parte php è:

    codice:
    <?php
    $array("gatto, "cane", "mucca");
    echo $array;
    ?>

  2. #2
    Per ritornare una array dovresti impostare un
    codice:
    dataType:"json"
    (invece del dataType: "html" cha usi attualmente)
    Di modo che jQuery interpreti la risposta come un oggetto javascript e non come testo.
    (Puoi anche non specificare affatto il dataType nella chiamata $.Ajax() e jQuery interpreterà in maniera intelligente i dati ritornati)


    Lato server dovrai usare la funziona nativa di PHP json_encode() per codificare in formato json l'array di PHP

    Codice PHP:
    <?php
    $array
    =array("gatto""cane""mucca");
    echo 
    json_encode($array);
    ?>








    Comunque, se devi popolare una select con delle province, ti conviene ritornare direttamente il codice HTML che ti serve e poi "appenderlo" dove ti serve. Eviterai di creare il codice HTML lato-client che richiede più righe di codice.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    residenza
    Bologna
    Messaggi
    31
    Hai ragione, infatti ho fatto così. Lato server ho preparato la struttura HTML che ho ritornato ad ajax e l'ho ignettata direttamente nel div apposito.

    Grazie per l'aiuto.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.