- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema drop-down box
-
Problema drop-down box
Ciao a tutti.
Vorrei chiedervi una cosa: in una pagina PHP ho un drop-down box contenente una lista di X elementi ed un bottone. Dopo aver scelto un qualsiasi elemento dal drop-down box e cliccato sul bottone, sul drop-down box torna a comparire il primo elemento della lista.
La mia domanda è questa: è possibile far rimanere l'elemento scelto? Se si, come si fa?
Ciao, grazie.
-
Ciao samurai.sette
in teoria dovrebbe rimanere il l'ultimo scelto, a meno che nel bottone non ci sia un post alla pagina stessa o un refresh. In quel caso la pagina viene ricaricata
-
Ciao PietroR. Purtroppo nel bottone c'è proprio un post e una volta cliccato il php mi fa tutti i calcoli che deve e mi aggiorna un grafico google chart. Di conseguenza mi fa un refresh e mi ricarica la pagina.
Detto questo c'è una soluzione al mio problema?
Ciao, grazie.
-
non so se ti complichi la vita o meno ma potresti fare una chiamata asincrona ajax ed aggiornare solo la parte di pagina relativa al grafico.
-
avevo pensato anche io ad una soluzione del genere. infatti il grafico si trova su un div tutto suo.
mi potresti dare qualche dritta?
-
Ciao PietroR. Ho provato a scrivere questo codice che mi aggiorna solo il div contenente il grafico (senza ricaricare la pagina) ma il problema con il drop-down box persiste. Ti posto il codice che ho scritto.
Nella sezione head ho scritto questo:
[PHP]
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery-migrate-1.2.1.min.js"></script>[/PHP]mentre nel body ho scritto questo:
[PHP]
<script>
var auto_refresh = setInterval(
function()
{
$('#GRAFICO').fadeOut('slow').load('index.php').fadeIn("slow");
});
</script>[/PHP]Secondo te dove sbaglio?
Ciao, grazie.
-
puoi postare il codice della drop down e del form (se c'è)?
-
Ciao PietroR. Ti posto la parte inerente la drop down e il relativo form.
[PHP]<html xmlns=" http : // w w w. w3 . org/1999/xhtml ">
<head>
<script src="jquery-1.9.1 . min . js"></script>
<script src="jquery-migrate-1.2.1. min . js"></script><meta content="it" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>CORPO</title>
<style type="text/css">
#COMANDI {
width: 200px;
float: left;
background-color: #FFFFCC;
}
#CORPO {
width: 600px;
float: left;
background-color: #FFCCFF;
}body {
text-align: center;
}</style>
</head><body>
<div id="COMANDI">
COMANDI<br />
<br />
<form method="post">
<input name="submit" style="width: 100px" type="submit" value="Aggiorna" /><br /> <br />
<br />
<select name="addendo1" style="width: 150px">
<option>10</option>
<option>20</option>
<option>30</option>
</select><br />
<br />
<select name="addendo2" style="width: 150px">
<option>10</option>
<option>20</option>
<option>30</option>
</select></form>
</div><div id="CORPO">
<?php
if (isset ($_POST['submit']))
{
$lettura1 = $_POST['addendo1'];
$lettura2 = $_POST['addendo2'];
$totale = $lettura1 + $lettura2;
echo "Totale: $totale";
}
?><!-- faccio aggiornare solo l'ID GRAFICO e non tutta la pagina -->
<script>
var auto_refresh = setInterval(
function()
{
$('#CORPO').fadeOut('slow').load('index.php').fadeIn("slow");
});</script>
</div>
</body>
</html>
[/PHP]Da come puoi leggere, il codice è di una banalità assurda!!!! Ogni volta che clicco il bottone submit viene aggiornato solo il div CORPO ma nei due drop down non vengono mantenuti i valori scelti.
-
Ciao samurai.sette,
Se vuoi mantenere il post sulla pagina, prova in questo modo:
[PHP]
<html xmlns=" http : // w w w. w3 . org/1999/xhtml ">
<head>
<script src="jquery-1.9.1 . min . js"></script>
<script src="jquery-migrate-1.2.1. min . js"></script><meta content="it" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>CORPO</title>
<style type="text/css">
#COMANDI {
width: 200px;
float: left;
background-color: #FFFFCC;
}
#CORPO {
width: 600px;
float: left;
background-color: #FFCCFF;
}body {
text-align: center;
}</style>
</head><body>
<div id="COMANDI">
COMANDI<br />
<br />
<?php
if (isset ($_POST['submit'])){
$lettura1 = $_POST['addendo1'];
$lettura2 = $_POST['addendo2'];
}?>
<form method="post">
<input name="submit" style="width: 100px" type="submit" value="Aggiorna" /><br /> <br />
<br />
<select name="addendo1" style="width: 150px">
<option <?php if($lettura1 == "10" && isset($_POST["submit"])) { echo "selected"; } ?> >10</option>
<option <?php if($lettura1 == "20" && isset($_POST["submit"])) { echo "selected"; } ?>>20</option>
<option <?php if($lettura1 == "30" && isset($_POST["submit"])) { echo "selected"; } ?>>30</option>
</select><br />
<br />
<select name="addendo2" style="width: 150px">
<option <?php if($lettura2 == "10" && isset($_POST["submit"])) { echo "selected"; } ?>>10</option>
<option <?php if($lettura2 == "20" && isset($_POST["submit"])) { echo "selected"; } ?>>20</option>
<option <?php if($lettura2 == "30" && isset($_POST["submit"])) { echo "selected"; } ?> >30</option>
</select></form>
</div><div id="CORPO">
<?php
if (isset ($_POST['submit']))
{
$totale = $lettura1 + $lettura2;
echo "Totale: $totale";
}
?><!-- faccio aggiornare solo l'ID GRAFICO e non tutta la pagina -->
<script>
var auto_refresh = setInterval(
function()
{
$('#CORPO').fadeOut('slow').load('index.php').fadeIn("slow");
});</script>
</div>
</body>
</html>
[/PHP]
-
Ciao MiWebDesign, grazie mille per la risposta.
Ho provato il tuo codice e devo dire che purtroppo non funziona. Anzi, funziona al contrario. Ti spiego: se dal drop down "addendo1" seleziono il valore 10 e dal drop down "addendo2" seleziono il valore 20 e poi clicco il bottone "Aggiorna", nei due drop down compaiono i valori 30. E poi non effettua la somma dei due valori.
-
Ciao samurai.sette
Io ho testato il codice di MiWebDesign e devo dire che a me funziona.
-
Ciao PietroR. Scusa ma come fa a funzionarti se MiWebDesign nel suo codice ha scritto prima questa parte di codice:
[PHP]if (isset ($_POST['submit']))
{
$lettura1 = $_POST['addendo1'];
$lettura2 = $_POST['addendo2'];
}[/PHP]e poi ha scritto questo:
[PHP]<form method="post">
<input name="submit" style="width: 100px" type="submit" value="Aggiorna" /><br/><br/><br />
<select name="addendo1" style="width: 150px">
<option <?php if($lettura1 == "10" && isset($_POST["submit"])) { echo "selected"; } ?> >10</option>
<option <?php if($lettura1 == "20" && isset($_POST["submit"])) { echo "selected"; } ?>>20</option>
<option <?php if($lettura1 == "30" && isset($_POST["submit"])) { echo "selected"; } ?>>30</option></select><br /><br /><select name="addendo2" style="width: 150px">
<option <?php if($lettura2 == "10" && isset($_POST["submit"])) { echo "selected"; } ?>>10</option>
<option <?php if($lettura2 == "20" && isset($_POST["submit"])) { echo "selected"; } ?>>20</option>
<option <?php if($lettura2 == "30" && isset($_POST["submit"])) { echo "selected"; } ?> >30</option>
</select></form>[/PHP]La prima parte del codice andrebbe messa dopo il form altrimenti genera gli errori "Undefined variable: lettura1" e "Undefined variable: lettura2" Questo è quello che succede a me.
-
Ciao samurai.sette
nella prima parte del codice si entra nell'if solamente se è stato fatto un submit, in caso contrario le istruzioni non vengono eseguite. Quello che ho fatto io è stato prendere il codice e incollarlo senza modificare nulla di ciò che era stato scritto.
-
Ciao PietroR. Quindi hai fatto copia/incolla del codice di MiWebDesign? Se è così hai fatto ciò che ho fatto anche io e mi ha generato gli errori che ho scritto prima. Per farli sparire dovevo cliccare sul bottone.