Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Passare array tramite GET

    In caso di errore nell'immissione di dati, devo ripassare tutti i dati alla pagina precedente tramite il GET e con un reindirizzamento. Tutte le variabili qui sotto sono degli array.

    Codice PHP:
    header("Location: modContraente_contratto2.php?messaggio=$messaggio&repertorio=$repertorio&contatore_fisso=$contatore&nome_contraente_originario=$nome_contraente_originario&cognome_contraente_originario=$cognome_contraente_originario"); 
    Dall'altra parte le recupero nel solito modo (es: $nome_contraente=$_GET["Nome_contraente"], e le inserisco nell'input come valore value (es: <input type='text' name=nome_contraente[] value='$nome_contraente[$i]'> dove $i si incrementa a ogni passaggio)

    Le variabili sono definite nella pagina, ma a quanto pare non le considera array perchè non stampa nulla se faccio:
    Codice PHP:
    foreach($_GET['nome_contraente'] as $value) echo "$value 
    "

    Come si fa a passare un array con il GET?


    Edit: se stampo $_GET['nome_contraente'] mi dice in effetti che un array... allora il problema è che non riesco a recuperare i valori interni. Qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Nessuno ha mai passato un array tramite GET?
    Ho pensato di passare ogni singola variabile degli array sulla stringa dell'indirizzo, ma mi viene una cosa lunghissima... ci sarà un modo alternativo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    se fai
    Codice PHP:
    print_r($_GET['nome_contraente'] ); 
    cosa ti dà?

  4. #4
    Codice PHP:
    header("Location: modContraente_contratto2.php?messaggio=$messaggio.... 
    Il redirect sarà a modContraente_contratto2.php?messaggio=Array&reper torio=Array
    l'echo ti stampa Array, perchè quella stringa è stata passata, per passare un array tramite query_string devi usare serialize(array) nella pagina che invia e unserialize($_GET['array']) nella pagina che riceve, occhio che l'url si allunga molto, forse meglio usare le sessioni

  5. #5
    Originariamente inviato da Horus-Ra
    Nessuno ha mai passato un array tramite GET?
    Ho pensato di passare ogni singola variabile degli array sulla stringa dell'indirizzo, ma mi viene una cosa lunghissima... ci sarà un modo alternativo
    serialize() - unserialize()

    ma se superi un certo tot di lunghezza (dipende dall'host) ti verrebbe troncata la stringa.

    Penserei piu' all'uso del file di sessione, oppure se invece di un header usassi javascript e controllare il form prima ancora di inviarlo?



    @ edit ... cubalibre...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Mi dice "array". Io penso che si sia formato un array dentro un array: se passo un array attraverso il GET, vuol dire che ficco un array in un nuovo array. E da questo punto non so come estrarlo

    Mi sa che rinuncio a passare i dati. Il cliente, se sbaglia, si rifà la procedura da zero e fine

    Edit: non avevo visto i messaggi. Comunque mi studio serialize() e vedo se è fattibile, altrimenti evito di farlo.

    Grazie per l'aiuto

  7. #7
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    Ciao,

    se usi PHP 5, come alternativa, puoi uasare la nuova funzione di PHP, semplicissima e fatta apposta per l'invio di parametri via URL:

    Codice PHP:
    http_build_query 
    Non c'è bisogno di codificare e ne decodificare con serialize() in quanto fa tutto PHP da se.

    Esempio:

    Codice PHP:
    <?
    //definizione array
    $arrParams = array(
    'azione' => 'bere',
    'cliente'=>1234,
    'articolo'=>4711,
    'numero'=>3,
    );

    $targetUrl 'carrello.php?' http_build_query($arrParams);
    echo 
    "[url='$targetUrl']nel carrello[/url]";
    ?>
    Per ulteriori esempi, su come possono essere gli array, ecc... vedi manuale.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Grazie jeppox, la provo subito

  9. #9
    Con http_build_query() l'url diventa ancora più lungo che con serialize(), specie se gli array hanno diversi elementi (ogni elemento viene passato singolarmente in questo modo key[indice]=valore)
    Molto meglio le sessioni, poi vedi te

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Potrei farlo davvero con il javascript, il problema si risolverebbe in fretta.
    Altrimenti come potrei fare con le sessioni? Mi basta il concetto, poi vedo di cercarmi da solo le informazioni dettagliate (magari è qualcosa che ho già fatto in altri siti)

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.