- Home
- Categorie
- Coding e Sistemistica
- PHP
- select dipendente da altra select
-
select dipendente da altra select
Come dice il titolo, sto provando a mettere 2 select, la prima che seleziona un dato e la seconda che seleziona un dato in base al primo. Ho cercato un po' ma esiste solo in javascript?
In php non c'è un modo per farlo?il mio file ho provato così ma ovviamente nella seconda selecto non vedo i dati riferiti alla prima, anzi è vuota.
//PRIMA SELECT
echo "seleziona l'azienda: ";
echo '<form>';
echo '<select name="azienda">';
echo '<option value="ditta"></option>';
$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($ditta = mysql_fetch_array($result))
{
echo "<option value='".$ditta[3]."'>".$ditta[3]."</option>";
}
echo ' </select>';
echo ' <br>';//SECONDA SELECT
echo "seleziona il dipendente: ";
echo '<form>';
echo '<select name="azienda">';
echo '<option value="ditta"></option>';
$dipe = "SELECT * FROM anag_dip WHERE id_utente= $userid and id_azienda = '$ditta[3]' order by cognome";
$result = mysql_query($dipe,$connessione);
while($dipe = mysql_fetch_array($result))
{
echo "<option value='".$dipe[3]."'>".$dipe[3]."</option>";
}
echo ' </select>';echo '</form>';
-
La seconda select dovresti crealarla dopo che premi invio... altrimenti va fatta in javascript visto che non puoi creare cose sul momento con un linguaggio lato server...
-
@Thedarkita said:
La seconda select dovresti crealarla dopo che premi invio... altrimenti va fatta in javascript visto che non puoi creare cose sul momento con un linguaggio lato server...
ok, quindi devo creare 2 pagine?
Cioè per esempio:- prima pagina: sulla prima select metto il bottone e un action che va sulla seconda.
- seconda pagina: metto il bottone sulla seconda select.
E' giusta come logica?
Ma non si può fare sulla stessa pagina direttamente? Una volta ho provato a mettere come action "php_SELF" ma mi dava degli errori forse dipendenti dal file di sistema php (forse ini)...
-
basta che metti action="" e si elebora da sola e puoi fare tutto in una pagina...
-
@Thedarkita said:
basta che metti action="" e si elebora da sola e puoi fare tutto in una pagina...
ok grazie ci provero'
-
@Thedarkita said:
basta che metti action="" e si elebora da sola e puoi fare tutto in una pagina...
ho provato in atro modo ma non mi funziona qualcosa:
//SELZIONE DELL'AZIENDA,
echo "seleziona l'azienda: ";
?>
<form name="form" action='<?php echo $_SERVER["PHP_SELF"] ?>'>
<?phpecho '<select name="azienda" onchange="this.form.submit()">';
echo '<option value="ditta"></option>';
$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($ditta = mysql_fetch_array($result))
{
echo "<option value='".$ditta[3]."'>".$ditta[3]."</option>";}
echo ' </select>';
$prova_stampa= $_POST['azienda'];//QUESTA NON LA RICONOSCE
echo $prova_stampa;
echo ' <br>';sembra che carichi perchè vedo le variabili dal browser, pero' non mi rimane selezionato niente e non vedo la stampa (quella che ho scritto in nero)
-
<form name="form" action='<?php echo $_SERVER["PHP_SELF"] ?>'>
devi specificare method="post"
e action mettilo cosi action=""e vedi che funziona
-
@Thedarkita said:
<form name="form" action='<?php echo $_SERVER["PHP_SELF"] ?>'>
devi specificare method="post"
e action mettilo cosi action=""e vedi che funziona
ok, stasera ci provo... mi sembrava di averlo messo il method post...bo, comunque ti so dire, grazie
-
Ok facci sapere ^^
-
@Thedarkita said:
Ok facci sapere ^^
ok, la prima parte funziona, e ho messo anche una stampa della ditta che seleziono; il problema ora è nella seconda: ho fatto la query per selezionare i dati in base alla prima scelta ma non mi stampa niente... non capisco:
ora lo script è cos':[PHP]//SELZIONE DELL'AZIENDA,
echo "seleziona l'azienda: ";
?>
<form name="form" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<select name="azienda" onchange="this.form.submit()">';
echo '<option value="ditta"></option>';
$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($ditta = mysql_fetch_array($result))
{
echo "<option value='".$ditta[3]."'>".$ditta[3]."</option>";
}
echo ' </select>';
echo ' <br>';
echo @$_POST['azienda'];
$azienda=$_POST['azienda'];
echo ' <br>';//SELEZIONE DEL DIPENDENTE
//QUI FORSE CI SONO DEGLI ERRORI
echo "seleziona il dipendente: ";
?>
<form name="form2" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<select name="dipe" onchange="this.form.submit()">';
echo '<option value="dipe"></option>';
$dipe = "SELECT * FROM anag_dip WHERE id_utente= $userid and id_azienda = ". $_POST['azienda']." order by cognome";
$result = mysql_query($dipe,$connessione);
while($dipe = mysql_fetch_array($result))
{
echo "<option value='".$dipe[3]."'>".$dipe[3]."</option>";
}
echo ' </select>';
echo ' <br>';
echo $dipe;
echo ' <br>';echo '</form>'; [/PHP]
-
@maubox8 said:
ok, la prima parte funziona, e ho messo anche una stampa della ditta che seleziono; il problema ora è nella seconda: ho fatto la query per selezionare i dati in base alla prima scelta ma non mi stampa niente... non capisco:
ora lo script è cos':[php]//SELZIONE DELL'AZIENDA,
echo "seleziona l'azienda: ";
?>
<form name="form" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<select name="azienda" onchange="this.form.submit()">';
echo '<option value="ditta"></option>';
$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($ditta = mysql_fetch_array($result))
{
echo "<option value='".$ditta[3]."'>".$ditta[3]."</option>";
}
echo ' </select>';
echo ' <br>';
echo @$_POST['azienda'];
$azienda=$_POST['azienda'];
echo ' <br>';//SELEZIONE DEL DIPENDENTE
//QUI FORSE CI SONO DEGLI ERRORI
echo "seleziona il dipendente: ";
?>
<form name="form2" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<select name="dipe" onchange="this.form.submit()">';
echo '<option value="dipe"></option>';
$dipe = "SELECT * FROM anag_dip WHERE id_utente= $userid and id_azienda = ". $_POST['azienda']." order by cognome";
$result = mysql_query($dipe,$connessione);
while($dipe = mysql_fetch_array($result))
{
echo "<option value='".$dipe[3]."'>".$dipe[3]."</option>";
}
echo ' </select>';
echo ' <br>';
echo $dipe;
echo ' <br>';echo '</form>'; [/php]
perfetto ho risolto!!
L'ho messo così:
[php]//SELZIONE DELL'AZIENDA
echo "seleziona l'azienda: ";
?>
<form name="form" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<select name="azienda" onchange="this.form.submit()">';
echo '<option value="ditta"></option>';
$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($ditta = mysql_fetch_array($result))
{
echo '<b>';
echo "<option value='".$ditta[3]."'>".$ditta[3]."</option>";
echo '</b>';
}
echo ' </select>';
echo ' <br>';
echo @$_POST['azienda'];
$azienda=@$_POST['azienda'];
echo ' <br>';//SELEZIONE DEL DIPENDENTE
echo "seleziona il dipendente: ";
?>
<form name="form" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<br>';
//echo '<select name="dipe" onchange="this.form.submit()">';
echo '<select name="dipe"';
echo '<option value="dipe"></option>';
$dipe = "SELECT * FROM anag_dip WHERE id_utente= $userid and id_azienda = '$azienda' order by cognome";
$result = mysql_query($dipe,$connessione);
while($dipe = mysql_fetch_array($result))
{
echo "<option value='".$dipe[3]."'>".$dipe[3]."</option>";
}
echo ' </select>';
echo ' <br>';
echo $dipe;
echo ' <br>';echo '</form>';
[/php]Ora devo solo mettere i valori in altro post in modo da andare in altra pagina php...
Grazie!!!
-
Ok bene ^^
-
@Thedarkita said:
Ok bene ^^
ops... l'unica cosa è che non riesco a stampare il secondo valore ulteriormente...
Nel primo funziona tranquillamente[php]
//SELEZIONE DEL DIPENDENTE
echo "seleziona il dipendente: ";
?>
<form name="form" method="post" action='<?php echo $_SERVER["PHP_SELF"] ?> '>
<?php
echo '<br>';
//echo '<select name="dipe" onchange="this.form.submit()">';
echo '<select name="dipe"';
echo '<option value="dipe"></option>';
$dipe = "SELECT * FROM anag_dip WHERE id_utente= $userid and id_azienda = '$azienda' order by cognome";
$result = mysql_query($dipe,$connessione);
while($dipe = mysql_fetch_array($result))
{
echo "<option value='".$dipe[3]."'>".$dipe[3]." ". $dipe[4]."</option>";//QUI TUTTO OK
}echo ' </select>';
echo '</form>';
echo ' <br>';
echo $dipe[3];//PERCHE' NON MI RICONOSCE LA VARIABILE?
echo ' <br>';
[/php]
-
invece in post mi mette valori a caso:
echo @$_POST['dipe'];
-
nel codice hai messo echo $dipe[3];
-
-
forse ho capito dove è il problema:
- le 2 select funzionano perfettamente, pero' in fondo alla pagina io ho aggiunto echo @$_POST['dipe'];
praticamente io richiamo la prima select e la seconda ma, pur funzionando (le select) sull'ultimo valore aggiunto non mi da valore; poi, subito dopo, se richiamo nella prima select un altro valore, mi stampa il valore che avevo richiamato prima. In pratica rifa un ciclo. E' come se la seconda select non la vedesse subito... che strano...
- le 2 select funzionano perfettamente, pero' in fondo alla pagina io ho aggiunto echo @$_POST['dipe'];
-
proprio nessuno mi sa dare una mano? forse è meglio che creo un'altra pagina... la risolverei sicuramente, ma mi piange il cuore perchè volevo farlo nella stessa pagina...