PDA

Visualizza la versione completa : menų a tendina


andrew.des
19-03-2016, 18:50
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

fladipa
21-03-2016, 15:07
Ciao, posta la script che hai scritto e proveremo ad aiutarti CORREGGENDOLO e non scrivendolo ex novo

gaten
21-03-2016, 16:37
<?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.

andrew.des
21-03-2016, 17:31
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

k.b
21-03-2016, 17:36
Ti suggerisco di leggere il regolamento, i tuoi post sono un perfetto esempio di cosa NON fare: http://forum.html.it/forum/showthread.php?threadid=1470525

gaten
21-03-2016, 17:52
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...



<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:




<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:


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:



print json_encode($result);

andrew.des
21-03-2016, 18:11
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.

Loading