Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138

    Problema con form html e recupero dati db

    Salve,

    Ho realizzato un form html del tipo

    <FORM METHOD="GET" ACTION="user/list.php">

    <SELECT NAME="Struttura[]">
    <OPTION>agriturismo</OPTION>
    <OPTION>appartamento</OPTION>
    <OPTION>bed and breakfast</OPTION>
    <OPTION>residence</OPTION>
    <OPTION>tutte</OPTION>
    </SELECT>

    Recupero l'array Struttura[] nel file list.php in questo modo:

    foreach($_REQUEST["Struttura"] as $tipo){
    }

    Mi genero poi con la variabile $tipo la pagina(con titolo e h1) e la query nel db. (per la query mi serve la condizione WHERE $tipo='')

    Va tutto bene finchè il tipo di struttura è agriturismo,appartamento,... infatti questi sono campi del db, il problema nasce quando dal form pesco il valore "tutte"

    Come posso ovviare al problema? C'è un modo elegante? Potrei mettere un if fare una query in modo diverso, ma poi incasinerei la creazione della pagina (infatti vorrei generarla con titolo e descrizione in automatico) e la pulizia dello script, inoltre avendo lo stesso problema anche per il campo località rischierei di creare uno spaghetti code pieno di salti condizionali.

    Fatemi sapere il metodo che usate per risolvere questo problema, dato che sicuramente vi sarà capitato molte volte..grazie per l'aiuto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    ........ nessuna risposta??...

  3. #3

    Problema con form html e recupero dati db

    Non so se ho capito bene, prova così
    list.php

    <?php
    if ($tipo=="tutte") {

    header ("Location:nuovapaginavedi_tutte.php");}
    ************************************************** *****
    in vedi_tutte.php fai la query senza senza la clausola where

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    Ciao,

    Grazie per la risposta, mi è stata di grande aiuto.

    Ho ancora un problema: il campo "tutte" è sia su località che strutture, quindi ho dei problemi con le condizioni
    io vorrei tre tipi di comportamento:
    un comportamento per "tutte le località",
    uno per "tutte le strutture" e
    uno per "tutte le strutture - tutte le località"....

    Avevo pensato di mettere un

    if tipo=="tutte" && struttura=="tutte"{...}
    if tipo=="tutte" {...}
    if struttura=="tutte" {...}

    ma non funziona, penso che sbagio qualcosa a livello logico...

    Consigli? C'è un metodo più elegante?

    Grazie

  5. #5
    Mi di spiace non ti seguo più.Puoi postarmi il codice dello script , e la struttura della tabella?
    Ciao.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    allora la tabella ha due campi uno struttura (agriturismo,albergo....) ed uno localita(paese1,paese2,...), io vorrei selezionare dal form alternativamente tutte le strutture, oppure tutte le località o sia tutte le strutture che tutte le località...

    Quindi pensavo di impostare l'if come ti avevo scritto, anche se non va bene...

    Te cosa mi consigli? Se hai bisogno di altre info fammelo sapere...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    Salve,

    Ho realizzato un form html del tipo

    <FORM METHOD="GET" ACTION="user/list.php">

    <SELECT NAME="Struttura[]">
    <OPTION>tutte</OPTION>
    <OPTION>agriturismo</OPTION>
    <OPTION>appartamento</OPTION>
    <OPTION>bed and breakfast</OPTION>
    <OPTION>residence</OPTION>
    <OPTION>tutte</OPTION>
    </SELECT>

    <SELECT NAME="Localita[]">
    <OPTION>tutte</OPTION>
    <OPTION>agriturismo</OPTION>
    <OPTION>appartamento</OPTION>
    <OPTION>bed and breakfast</OPTION>
    <OPTION>residence</OPTION>
    <OPTION>tutte</OPTION>
    </SELECT>


    Recupero l'array Struttura[] e quello Localita[] nel file list.php in questo modo:

    foreach($_REQUEST["Struttura"] as $tipo){
    }

    foreach($_REQUEST["Localita"] as $localita){
    }

    e mi genero pagina e query sfruttando le variabili $tipo,$localita.

    Quello che vorrei è un comportamento differenziato per la query nel caso in cui si selezioni
    1)struttura == "tutte"
    2)localita=="tutte"
    3)struttura == "tutte" e localita=="tutte"

    Seguendo alcuni suggerimenti avevo pensato di mettere un if nell'header del tipo

    <?php
    if ($tipo=="tutte") {

    header ("Location:nuovapaginavedi_tutte.php");}
    ****************************************
    ***************
    e fare in vedi_tutte.php la query senza senza la clausola where

    poi un altro if ($localita=="tutte")

    e un if ($localita=="tutte") && ($tipo=="tutte")

    ma ho dei problemi.

    Qualcosa non va bene nei vari if, come mi suggerite di ovviare a livello di salti condizionali ed ottenere i 3 comportamenti desiderati?

    Fatemi sapere e grazie per l'aiuto

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    138
    ragazzi qualcuno mi aiuta?.... è un dubbio semplicissimo da risolvere...

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Dimmi se come logica degli if ti serve una cosa del genere

    Codice PHP:
    $localita "tutte";
    $tipo "tutte";

    if (
    $localita == "tutte" && $tipo == "tutte")
    echo 
    "Entrambe";
    else if(
    $localita == "tutte" && $tipo != "tutte")
    echo 
    "località tutte e tipo no";
    else if(
    $localita != "tutte" && $tipo == "tutte")
    echo 
    "località diversa da tutte e tipo tutte";
    else
    echo 
    "entrambe diverse"

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.