PDA

View Full Version : URGENTE - Tendina PHP con dati MySQL...


PhoEniX-VooDoo
09-08-2007, 08:12
Ciao, sto facendo un progetto ed ho realizzato cose di varia difficolta ma sono fermo davanti a questa stupida tendina che nn riesco proprio :muro: :muro:

Ho provato a seguire guide online ecc. ma zero risultati :mc:


In sostanza: ce una tabella 'societa' ed che ha diversi campi, dei quali a me nel caso specifico interessa 'soc_name'.

A me serve: un menu a tendina che con una select va a pescare i dati da quella tabella (SELECT soc_name FROM societa). Quindi aprendo la tendina si devono vedere tutte le societa.


Qualcuno puo essere cosi gentile da scrivermi il codice (penso non sia troppo lungo) che posso usare o adattare facilmente ?

andbin
09-08-2007, 08:42
In sostanza: ce una tabella 'societa' ed che ha diversi campi, dei quali a me nel caso specifico interessa 'soc_name'.

A me serve: un menu a tendina che con una select va a pescare i dati da quella tabella (SELECT soc_name FROM societa). Quindi aprendo la tendina si devono vedere tutte le societa.Per "tendina" immagino che tu intenda il costrutto html <select> con dentro delle <option>

Quindi farai la connessione al db, eseguirai la query con mysql_query, otterrai un resultset con n record. Devi fare semplicemente un loop in cui prelevi una singola riga del resultset e mandi in output un tag <option>.

A grandi linee (e salvo miei errori/omissioni ... non l'ho testato) è una cosa del genere:
echo "<select name=\"societa\">\r\n";

$result = mysql_query (".........", $db_conn);

if ($result !== FALSE)
{
while ($row = mysql_fetch_assoc ($result))
{
$soc = htmlspecialchars ($row['soc_name'], ENT_QUOTES);

echo "<option value=\"$soc\">$soc</option>\r\n";
}
}

echo "</select>\r\n";
Ovviamente personalizzalo come vuoi: i tag select potresti metterli come codice html e non mandarli in output con php. Poi devi stabilire quale deve essere il "value" delle option. Potrebbe andarti bene il nome della società ma forse sarebbe meglio avere un codice univoco (e dipende ovviamente da cosa ci devi poi fare con l'elemento selezionato dall'utente).

Insoma... non è così difficile. ;)

PhoEniX-VooDoo
10-08-2007, 08:30
Per "tendina" immagino che tu intenda il costrutto html <select> con dentro delle <option>

Quindi farai la connessione al db, eseguirai la query con mysql_query, otterrai un resultset con n record. Devi fare semplicemente un loop in cui prelevi una singola riga del resultset e mandi in output un tag <option>.

A grandi linee (e salvo miei errori/omissioni ... non l'ho testato) è una cosa del genere:
echo "<select name=\"societa\">\r\n";

$result = mysql_query (".........", $db_conn);

if ($result !== FALSE)
{
while ($row = mysql_fetch_assoc ($result))
{
$soc = htmlspecialchars ($row['soc_name'], ENT_QUOTES);

echo "<option value=\"$soc\">$soc</option>\r\n";
}
}

echo "</select>\r\n";
Ovviamente personalizzalo come vuoi: i tag select potresti metterli come codice html e non mandarli in output con php. Poi devi stabilire quale deve essere il "value" delle option. Potrebbe andarti bene il nome della società ma forse sarebbe meglio avere un codice univoco (e dipende ovviamente da cosa ci devi poi fare con l'elemento selezionato dall'utente).

Insoma... non è così difficile. ;)



Grazie mille, finalmente ci sono riuscito, l'ho adattato cosi:


<?php
include ("db.inc");

$query = "select soc_name from societa";

$dbResult = mysql_query($query, $db);

echo "<select name=\"societa\">\r\n";

if ($query !== FALSE){

while($row=mysql_fetch_array($dbResult)){

$soc_name = htmlspecialchars ($row["soc_name"], ENT_QUOTES);

echo "<option value=\"$soc_name\">$soc_name</option>\r\n";
}
}

echo "</select>\r\n";


?>



Ora mi serve solo che il valore che seleziono venga inserito in una variabile, come posso fare? Mi vabene il nomedella societàa perche tanto poi lo uso come condizione assieme al ID per eseguire una query...

grazie infinite ;)

andbin
10-08-2007, 08:52
Ora mi serve solo che il valore che seleziono venga inserito in una variabile, come posso fare?Dipende quando e dove ti serve? Quella select fa parte di un <form>? Cioè la selezione devi inviarla tramite POST ad uno script? O hai bisogno di avere il valore della selezione nella stessa pagina tramite Javascript per fare altre operazioni sulla pagina?

PhoEniX-VooDoo
10-08-2007, 08:59
Dipende quando e dove ti serve? Quella select fa parte di un <form>? Cioè la selezione devi inviarla tramite POST ad uno script? O hai bisogno di avere il valore della selezione nella stessa pagina tramite Javascript per fare altre operazioni sulla pagina?


È tutto PHP.

Cmq si, va dentro ad un form il quale manda il valore ad una pagina tramite post dove viene fatta la select in base ai valori delle variabili inviate.
In sostanza il form è una ricerca tramite vari filtri.

andbin
10-08-2007, 09:15
Cmq si, va dentro ad un form il quale manda il valore ad una pagina tramite post dove viene fatta la select in base ai valori delle variabili inviate.
In sostanza il form è una ricerca tramite vari filtri.Allora nello script che riceve i dati avrai il valore della scelta in $_POST['societa']

PhoEniX-VooDoo
10-08-2007, 09:36
perfetto funziona alla grande, ora mi servirebbe solo che la tendina si inizializzi con un campo vuoto, cosi che ci sia la possibilità che il campo soc_name sia nullo...

andbin
10-08-2007, 09:44
perfetto funziona alla grande, ora mi servirebbe solo che la tendina si inizializzi con un campo vuoto, cosi che ci sia la possibilità che il campo soc_name sia nullo...Basta che metti una prima option con value vuoto.

<option value="">--scegli--</option>

PhoEniX-VooDoo
10-08-2007, 10:06
Basta che metti una prima option con value vuoto.

<option value="">--scegli--</option>


Perfetto, sei stato veramente gentile.

Mille grazie e massimo rispetto per la tua competenza ;)

Buona giornata,


bye!