Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    9

    Check box filtra campi tabella

    Come da titolo, ho un problema (per voi sicuramente banale) ma sono proprio all'inizio.
    Ho una pagina di partenza.php dove è presente un form:
    Codice PHP:
    <form class="inserimento" action="stampaselezionata2.php" method="post">
    </
    div>                    <div class = "form-riga">                        <span class = "form-value"><input type="checkbox" name="opzione[a]" value="si"Tipologia</span>                    </div>                     <div class = "form-riga">                        <span class = "form-value"><input type="checkbox" name="opzione[b]" value="si"Difficolt&agrave;</span>                    </div>                     <div class = "form-riga">                        <span class = "form-value"><input type="checkbox" name="opzione[c]" value="si"Kcal</span>                    </div>                     <div class = "form-riga">                        <span class = "form-value"><input type="checkbox" name="opzione[d]" value="si"N.Porzioni</span>                    </div>                     <div class = "form-riga">                        <span class = "form-value"><input type="checkbox" name="opzione[e]" value="si"Note</span>                    </div>                                            <input class="submit" type="submit" value="Ricerca"/>                </form
    con le seguenti check box, nella pagina successiva (stampaselezionata2.php) vorrei che in base alle chek selezionate (anche più di una) sia possibile effettuare una ricerca su una tabella del database filtrando solo i campi selezionati nella checkbox (tipologia, difficolta ecc). Naturalmente non selezionando nessuna check il risultato dovrebbe essere l'intero contenuto della tabella senza filtro su nessun campo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Benvenuto.

    In stampaselezionata2.php devi prendere da POST i dati ricevuti e sapendo i "name" dei campi checkbox costruisci la query usando degli if.
    Se il tal campo checkbox è stato selezionato, aggiungi nel WHERE della query la clausola ad esso relativa, altrimenti no.
    Se nessun campo checkbox è selezionato, non metti proprio la clausola WHERE, così la query prende tutto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    per semplificare il codice, usa
    Codice PHP:
    where 1=
    poi scorrendo i checkbox, se il checkbox è selezionato, aggiungi
    Codice PHP:
    " and colonna=".$valore
    (attento allo spazio prima di "and")
    con "1=1" se nessun checkbox è selezionato, ti estrae comunque la tabella
    ciao
    Marino
    Ultima modifica di marino51; 24-10-2014 a 21:43

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    9
    un esempio ancora più concreto? Inoltre vi ricordo che poi devo stamparli in una tabella (dove certe colonne d'intestazione in base al check box non dovranno comparire)

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    scusa forse mi sono fatto prendere dal post precedente al mio,
    quando parli di campi intendi le colonne di una tabella,
    se ho interpretato bene, questo è il tuo file rivisto e corretto che prepara la select per interrogare il database (ovviamente devi aggiustare i nomi),
    la "stampa" della tabella fai lo sforzo di disegnarla tu .... le info le hai
    ciao
    Marino
    Codice PHP:
    <?php
    if (!empty($_POST['submit'])) {
      
    $sql "select";
      
    $virgola " ";
      if (empty(
    $_POST['opzione'])) $sql.= " *";
      if (!empty(
    $_POST['opzione']['a'])) { $sql.= $virgola."Tipologia"$virgola ","; }
      if (!empty(
    $_POST['opzione']['b'])) { $sql.= $virgola."Difficolta"$virgola ","; }
      if (!empty(
    $_POST['opzione']['c'])) { $sql.= $virgola."Kcal";  $virgola ","; }
      if (!empty(
    $_POST['opzione']['d'])) { $sql.= $virgola."NPorzioni"$virgola ","; }
      if (!empty(
    $_POST['opzione']['e'])) { $sql.= $virgola."Note";  $virgola ","; }
      
    $sql.= " from tabella order by Tipologia";
      echo 
    $sql;
    }
    ?>
    <form class="inserimento" action="stampaselezionata.php" method="post">
      <div class = "form-riga"> 
        <span class = "form-value">
          <input type="checkbox" name="opzione[a]" value="si" /> Tipologia
        </span>
      </div> 
      <div class = "form-riga">
        <span class = "form-value">
          <input type="checkbox" name="opzione[b]" value="si" /> Difficolt&agrave;
        </span> 
      </div>
      <div class = "form-riga">
        <span class = "form-value">
          <input type="checkbox" name="opzione[c]" value="si" /> Kcal
        </span>
      </div>
      <div class = "form-riga"> 
        <span class = "form-value">
          <input type="checkbox" name="opzione[d]" value="si" /> N.Porzioni
        </span>
      </div>
      <div class = "form-riga">
        <span class = "form-value">
          <input type="checkbox" name="opzione[e]" value="si" /> Note
        </span>
      </div>
      <input class="submit" type="submit" name="submit" value="Ricerca" />
    </form>

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    9
    credo di aver capito

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    9
    Cmq si intendevo le colonne

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non sono esperto di query correggetemi se sbaglio questa query dinamica
    Codice PHP:
    <?php
    if (!empty($_POST['submit'])) {
      
    $sql "select";
      
    $virgola " ";
      if (empty(
    $_POST['opzione'])) $sql.= " *";
      if (!empty(
    $_POST['opzione']['a'])) { $sql.= $virgola."Tipologia"$virgola ","; }
      if (!empty(
    $_POST['opzione']['b'])) { $sql.= $virgola."Difficolta"$virgola ","; }
      if (!empty(
    $_POST['opzione']['c'])) { $sql.= $virgola."Kcal";  $virgola ","; }
      if (!empty(
    $_POST['opzione']['d'])) { $sql.= $virgola."NPorzioni"$virgola ","; }
      if (!empty(
    $_POST['opzione']['e'])) { $sql.= $virgola."Note";  $virgola ","; }
      
    $sql.= " from tabella order by Tipologia";
      echo 
    $sql;
    }
    ?>
    filtra tramite la select non essendoci il where giusto?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    Lion ha bisogno di selezionare le colonne della tabella, non di selezionare righe
    le colonne si selezionano elencandole dopo la "select" le righe si selezionano con la clausola "where"
    bye
    Marino

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    Lion ha bisogno di selezionare le colonne della tabella, non di selezionare righe
    le colonne si selezionano elencandole dopo la "select" le righe si selezionano con la clausola "where"
    bye
    Marino
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.