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

    Passaggio array tramite form

    Buongiorno, ho trovato su Google come passare tramite un form invece di una variabile un array ma facendo così non mi funziona:

    provamanda.php
    codice:
    <html>
    <?php
    $array= array(1,2,3);
    ?>
    <form action="provaricevi.php">
    <input type="hidden" name="array" value="<?php print(serialize($array)); ?>" > 
    <input type="submit" value="invia hidden"> 
    </form>
    </html>
    provaricevi.php
    codice:
    <html>
    <?php
    $array = unserialize($_POST['array']);
    foreach ($array as $c){
    echo $c;
    }
    
    ?>
    
    </html>
    avete qualche chiarimento da darmi?
    Grazie in anticipo

  2. #2

  3. #3
    Non ci credo ho perso mezz'ora per una stupidata del genere... grazie ZioLuffio!!!!

  4. #4
    Avete idea del come mai non mi passa i valori se nel primo file creo un array di stringhe tipo:
    codice:
    $array= array('ciao','mario','matteo');

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    prova a usare json_encode e json_decode al posto di serialize e unserialize
    No

  6. #6
    json_encode sembra funzionare in quanto genera il codice html giusto, ma il json_decode non decodifica

  7. #7
    Penso che non decodifichi perchè la variabile arriva nella'ltra pagina con questo formato : [\"ciao\",\"mario\",\"matteo\"] invece che ["ciao","mario","matteo"]

  8. #8
    Quote Originariamente inviata da antoniosavolare Visualizza il messaggio
    Avete idea del come mai non mi passa i valori se nel primo file creo un array di stringhe tipo:
    codice:
    $array= array('ciao','mario','matteo');
    Non so cosa tu abbia fatto ma a me funziona... codice di prova:
    Codice PHP:
    <?php

    if(empty($_POST)){
    $array = array('ciao','mario','matteo');
    $a serialize($array);
    print_r($a);
    }else{
    $a unserialize($_POST['a']);
    print_r($a);
    }

    ?>
    <form action=<?=basename(__FILE__);?> method=post>
    <input type=hidden value='<?=$a;?>' name=a>
    <input type=submit>
    </form>

    EDIT:

    AAAAAHHHHH ORA HO CAPITO!!!!
    Questo è il mio sorgente prima dell'invio:
    codice HTML:
    a:3:{i:0;s:4:"ciao";i:1;s:5:"mario";i:2;s:6:"matteo";}<form action=*** method=post>
    <input type=hidden value='a:3:{i:0;s:4:"ciao";i:1;s:5:"mario";i:2;s:6:"matteo";}' name=a>
    <input type=submit> </form>
    devi quindi escappare le virgolette perché serialize() mette le virgolette!
    (Devi quindi poi provare a vedere che succede mettendo virgolette o apici nel tuo array.)
    Ultima modifica di ZioLuffio; 02-10-2014 a 14:55

  9. #9
    so di stare abusando del tuo tempo e ti ringrazio , ma a me sto codice non gira, te lo posto per intero:
    file provamanda.php
    codice:
    <html>
    <?php
    $array= array('ciao','matteo','claudio','silvio');
    $a = serialize($array);
    print_r($a);
    ?>
    <form action="provaricevi.php" method="post">
    <input type="hidden" name="array" value='<?=$a;?>' > 
    <input type="submit" value="invia hidden"> 
    </form>
    </html>

    file provaricevi.php
    codice:
    <html>
    <?php
    
    
    $array = unserialize($_POST['array']);
    print_r($a);
    foreach ($array as $c){
    echo $c;
    }
    
    
    ?>
    
    
    </html>

  10. #10
    Cosa ti esce fuori dai print_r? (nel secondo dovresti mettere print_r($array) non print_r($a) )

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