Visualizzazione dei risultati da 1 a 7 su 7

Discussione: menù a tendina

  1. #1

    menù a tendina

    Ciao a tutti, sono nuovo nel forum e anche della programmazione php.Ho bisogno del vostro aiuto.Dovrei creare un menù a tendina con delle categorie che prende dal db della registrazione e che mi permetta, quando ne seleziono una, di andare sulla pagina contenente le persone appartenenti alla categoria. ES
    Capelli rossi
    Capelli castani
    Capelli neri
    Capelli biondi.
    selezionando ad es capelli neri mi deve mostrare tutte le persone che hanno i capelli neri e così via...
    Spero di essere stato chiiaro, ho bisogno del vostro aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    29
    Ciao, posta la script che hai scritto e proveremo ad aiutarti CORREGGENDOLO e non scrivendolo ex novo

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Codice PHP:
    <?php
    $sth 
    $dbh->prepare("SELECT campo1,campo2 FROM tabella");
    $sth->execute();
    $result $sth->fetchAll(PDO::FETCH_ASSOC);
    $htm '<select name="menu">';
    foreach(
    $result as $row) {
       print 
    '<option value="'.$row['campo1'].'">'.$row['campo2'].'</option>';
    }
    $htm .= '</select>';
    print 
    $htm;
    ?>


    Questo , potrebbe essere un esempio, usando PDO di php . . . ma come consiglia fladipa, se inserissi il tuo codice potremmo essere più di aiuto.

    Ciao.
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Ciao a tutti. inserisco lo script e spiego:
    <!----------------------Cod x registrazione--------------------->
    <?php
    include('connect.php');

    if(isset($_POST['register'])) {
    $username = isset($_POST['username']) ? clear($_POST['username']) : false;
    $password = isset($_POST['password']) ? clear($_POST['password']) : false;
    $email = isset($_POST['email']) ? clear($_POST['email']) : false;
    $mestiere = isset($_POST['mestiere']) ? clear($_POST['mestiere']) : false;
    if(empty($username) || empty($password) || empty($email)) {
    echo 'Riempi tutti i campi.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(strlen($username) > 16) {
    echo 'Username troppo lungo. Massimo 16 caratteri.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(strlen($password) < 6 || strlen($password) > 20) {
    echo 'Lunghezza della password non valida. Minimo 6 caratteri e massimo 20.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo 'Indirizzo email non valido.';
    } elseif(strlen($email) > 60) {
    echo 'Lunghezza dell\'indirizzo email non valida. Massimo 60 caratteri.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(strlen($mestiere) > 25) {
    echo 'mestiere troppo lungo. Massimo 16 caratteri.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username LIKE '$username'")) > 0) {
    echo 'Username già in uso. Sei pregato di sceglierne un altro.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } elseif(mysql_num_rows(mysql_query("SELECT * FROM users WHERE email LIKE '$email'")) > 0) {
    echo 'Indirizzo email già in uso. Sei pregato di sceglierne un altro.<br /><br /><a href="javascript:history.back();">Indietro</a>';
    } else {
    $password = md5($password);
    $ip = $_SERVER['REMOTE_ADDR'];
    if(mysql_query("INSERT INTO users (username, password, email,mestiere, reg_ip, last_ip, reg_date) VALUES ('$username','$password','$email','$mestiere','$ip ','$ip',UNIX_TIMESTAMP())")) {
    header('location:reg.php');
    } else {
    echo 'Errore nella query: '.mysql_error();
    }
    }

    } else {
    ?>
    <html>
    <head>
    <title>andrew_des</title>
    <link href= "css/style.css" rel= "stylesheet" type= "text/css">
    <meta charset="utf-8">
    </head>
    <body>
    <div class="wrap_all">
    <div class="banner"><?php include('template/banner.php')?></div>
    <div class="content">
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <label><h2>Nome: <input type="text" name="nome" required maxlength="16" /></label></h2><br />
    <label><h2>Cognome: <input type="text" name="cognome" required maxlength="16" /></label></h2><br />
    <label><h2>Username: <input type="text" name="username" required maxlength="16" /></label></h2><br />
    <label><h2>Password: <input type="password" name="password" required maxlength="20" /></label></h2><br />
    <label><h2>Email: <input type="email" name="email" required maxlength="60" /></label></h2><br /><br />
    <label><h2>Mestiere: <input type="mestierel" name="mestiere" required maxlength="60" /></label></h2><br /><br />
    <input type="submit" name="register" value="Registrati" />
    </form>
    </div>
    <div class="footer"><?php include('template/footer.php')?></div>
    </div>
    </body>
    <?php
    }
    ?>

    <!------------------------cod Menù a tendina-------------------------->

    <html>
    <head>
    <title>andrew_des</title>
    <link href= "css/style.css" rel= "stylesheet" type= "text/css">
    <meta charset="utf-8">
    </head>
    <body>
    <div class="wrap_all">
    <div class="banner"><table_logout>
    <tr>
    <td><form action="logout.php" method="POST">
    <input type="submit" name="invio" value="Esci">
    </form></td>
    </tr>
    </table_logout><?php include('template/banner.php')?>
    </div>
    <div class="content">

    <h4> Benvenuto in CERCA Lavoro<h4>
    <!-----------------------------------------------------------------MENU A TENDINA------------------------------------------------>
    <FORM ACTION="vetraio.php" METHOD="post">
    Selezionare la categoria di interesse:<BR>
    <SELECT NAME="lavoro">
    <OPTION>Idraulico
    <OPTION>Elettricista
    <OPTION>Muratore
    <OPTION>Vetraio
    <OPTION><a href="falegname.php">Falegname</a>
    </SELECT>
    <INPUT TYPE="submit" VALUE=" Invia "/>
    </FORM>

    <!-----------------------------------------------------------------MENU A TENDINA------------------------------------------------>
    <form action="index.php" method="POST">
    <input type="submit" name="invio" value="Back" >
    </form>


    </div>
    <div class="footer"><?php include('template/footer.php')?></div>
    </div>
    </body>
    </html>

    Io voglio che le categorie nel menù a tendina siano quelle del db(inserite in fase di registrazione) e che quando io seleziono es. muratore, venga prelevato dalla mia tabella tutte le persone appartenenti a quella categoria. Spero che il concetto sia chiaro e che io abbia saputo esprimerlo bene.Help me

  5. #5
    Ti suggerisco di leggere il regolamento, i tuoi post sono un perfetto esempio di cosa NON fare: http://forum.html.it/forum/showthrea...readid=1470525

  6. #6
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Mi sono dedicato prettamente al menu a tendina, e non sapendo come gestisci la connessione al database, ho utilizzato PDO. Il codice sottostante serve solo per illustrarti (a grandi linee)il tutto...

    codice:
    <h4> Benvenuto in CERCA Lavoro<h4>
    <?php
    sth = $dbh->prepare("SELECT id,nome FROM categoria");$sth->execute();$result = $sth->fetchAll(PDO::FETCH_ASSOC);$htm = '<select name="lavoro" class="cat">';foreach($result as $row) {   print '<option value="'.$row['id'].'">'.$row['nome'].'</option>';}
    $htm .= '</select>';
    ?>
    <!-----------------------------------------------------------------MENU A TENDINA------------------------------------------------>
    <FORM ACTION="vetraio.php" METHOD="post">
    <?php print $htm; ?>
    <INPUT TYPE="submit" VALUE=" Invia "/>
    </FORM>
    inoltre, qui scrivo uno script per prelevare i dati in base alla selezione della categoria:

    codice:
    <script type="text/javascript">
    $('.cat').click(function(){
        $.post("get.php",{id: $(this).val()}, function(r){
            // Qui ottieni la lista delle persone che appartengono alla categoria "id"
        },'json');
    });
    </script>
    immagino che avrai una tabella in cui effettui il mapping tra categoria e persone, tipo:
    codice:
    CAT_PERS(id,id_categoria,id_persona,...);
    dunque in get.php, fai una select dalla tabella persone, prendendo tutte quelle che hanno la categoria associata ed effettui un print in json del risultato:


    Codice PHP:
    print json_encode($result); 
    Ultima modifica di gaten; 21-03-2016 a 17:55
    Con i sogni possiamo conoscere il futuro...

  7. #7
    grazie gaten, mi metto subito a lavoro. Mi scuso se il mio post era contro il regolamento, ma preso dal problema mi è sfuggito.
    Mi scuso ancora e ringrazio tutti.

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.