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

    creare SELECT da checkbox array

    Ciao a tutti, ho un problema con la creazione di una SELECT i cui valori dovrebbero essere letti da un array popolato da una checkbox.
    Popolo l'array nella tabella
    codice:
    <td><input type=checkbox name=box[] value='primo'>PRIMO</td> 
    <td><input type=checkbox name=box[] value='secondo'>SECONDO</td>
    <td><input type=checkbox name=box[] value='terzo'>TERZO</td>
    carico i valori in un array, e se stampo a video i valori contenuti, corrispondono a quelli selezionati effettivamente
    Codice PHP:
    $box=$_POST['box'];

    while (list (
    $key,$val) = @each ($box)) { 
      echo 
    "$val,"

    a questo punto avrei bisogno di creare una SELECT per interrogare il mio DB che legga e concateni in maniera corretta con gli OR giusti tutti i valori che sono presenti nell'array, tipo:
    Codice PHP:
    SELECT 
    FROM  `tabella
    WHERE  `posizione` =  'primo '
    OR  `posizione` =  'secondo' 
    ammesso che come in questo caso siano stati 'flaggati' solo PRIMO e SECONDO
    ho letto diversi post nel forum, ma non ne vengo fuori....
    qualcuno è così gentile da darmi una mano.
    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    $box=$_POST['box'];
    $where "(0=1)";
    while (list (
    $key,$val) = @each ($box)) {  
      
    $where .= " OR (posizione='$val')";
    };
    $query "SELECT * FROM ... WHERE ($where)"
    termina con un print $query;exit; per controllare la query generata ed eventualmente aggiustarla...

  3. #3
    ciao purtroppo ne $where ne $query contengono alcun valore (ho controllato con var_export($_POST)),
    print $query non stampa nulla .....
    ovviamente avevo modificato la SELECT....

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    cosa vuol dire "alcun valore"? non è possibile... perchè $query viene comunque settata... posta il pezzo di codice completo (solo le righe "incriminate")... var_export($_POST) non c'entra, o meglio: dovrebbe stampare il contenuto del form (non di $query o $where)

  5. #5
    Codice PHP:
    <?php
    include 'db.inc.php'
    session_start(); 
    $nomeutente $_SESSION['nomeutente'];
    ?> 
    <HTML>
    <HEAD><title>Clienti</title>
    </HEAD>
    <BODY> 

    <FORM name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <table>
    <tr>
    <td>
    <SELECT name="selezione">
    <table border='0' cellspacing='0' style='border-collapse: collapse' width='100' > 
    <tr>

    <td width='25%'><input type=checkbox name=box[] value='primo'>PRIMO</td> 
    <td width='25%'><input type=checkbox name=box[] value='secondo'>SECONDO</td> 
    <td width='25%'><input type=checkbox name=box[] value='terzo'>TERZO</td> 
    </tr> 
    </TABLE>
    <tr><td colspan =6 align=center><input type=submit value=Select></form></td></tr> 
    </table>"; 

    <?php

    //prova per vedere cosa contiene l'array
    //$box=$_POST['box'];
    //while (list ($key,$val) = @each ($box)) { 
    //echo "
    ";
    //echo "
    $val,"; 
    //} 

    ?>
    </SELECT>

    <td>
    <INPUT type="
    submit" name="submit" value="Invia">

    </td>
    </tr>
    </table>
    </FORM>

    <?php 

    if(isset(
    $_POST['submit'])) { 

    $box=$_POST['box']; 
    $where = "(0=1)"; 
    while (list (
    $key,$val) = @each ($box)) {   
      
    $where .= " OR (posizione='$val')"; 
    }; 
    $query = "SELECT FROM tabella WHERE ($where)";
    print 
    $query;
    var_export(
    $_POST);


    $selezione=$_POST["selezione"];

     // ..... resto del codice PHP che serve per altre funzioni ..... //

    ?>

      </table>
    </BODY>
    </HTML>

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dopo "print $query;" e "var_export($_POST);" metti "exit;" e posta il risultato

  7. #7
    perdonami avevo 'cappellato' io da altra parte del mio codice...
    restituisce correttamente:
    codice:
    SELECT * FROM tabella WHERE ((0=1) OR (posizione='primo') OR (posizione='secondo'))array ( 'box' => array ( 0 => 'primo', 1 => 'secondo', ),...... etc. etc...
    grazie 1000
    per l'aiuto

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Ok... so: solved.

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.