Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Passare un array attraverso un form

    Vorrei passare un array attraverso un form con il metodo post.

    Ho già provato a fare così

    Codice PHP:
    <?php
    $ids 
    serialize($ids); // $ids è l'array che voglio passare
    ?>
    <form action="send_mail.php" method="post">
    <input type="hidden" name="ids" value="<?php echo $ids?>" />
    poi in send_mail.php ho fatto così

    Codice PHP:
    $ids unserialize($_POST['ids']);
            
            
    $query 'SELECT * FROM iscritti WHERE iscritto_id = ' $ids[0];
            for (
    $i 1$i count($ids); $i++)
            {
                
    $query .= ' OR iscritto_id = ' $ids[$i];
            }
            echo 
    $query; exit(); // istruzioni di debug 
    ma $query viene fuori sbagliata:

    SELECT * FROM iscritti WHERE iscritto_id =

  2. #2
    Usa un ciclo foreach per generare tanti input quanti sono i valori dell'array...e poi nella seconda pagina ancora un foreach($_POST as $valore) ecc...

  3. #3
    E se non dovessi passare solo l'array, ma anche altri valori, come dovrei fare?

  4. #4
    Forse potrei prima estrarre e memorizzare le variabili che non erano nell'array e poi potrei eliminarle con la funzione unset :master: .

  5. #5
    Originariamente inviato da Aegidius157
    E se non dovessi passare solo l'array, ma anche altri valori, come dovrei fare?
    Stesso metodo, crei degli input hidden

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    diciamo che il tuo è un problema HTML, non php se la mia soluzione è corretta :-)

    la serializzazione non funziona in quanto genera una stringa con doppi apici che interferiscono con i doppi apici degli attributi HTML, i quali ti troncano l'array serializzato e sei fregato :-)

    applica quindi un base64 e il problema è risolto
    Codice PHP:
    <?php
    $ids 
    serialize($ids); // $ids è l'array che voglio passare
    ?>
    <form action="send_mail.php" method="post">
    <input type="hidden" name="ids" value="<?php echo base64_encode($ids); ?>" />
    e successivamente

    Codice PHP:
    $ids unserialize(base64_decode($_POST['ids']));
            
            
    $query 'SELECT * FROM iscritti WHERE iscritto_id = ' $ids[0];
            for (
    $i 1$i count($ids); $i++)
            {
                
    $query .= ' OR iscritto_id = ' $ids[$i];
            }
            echo 
    $query; exit(); // istruzioni di debug 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.