select box dynamisch eenvoudiger
Ik kom veel tegen over onchange maar nergens nog een beetje duidelijk hoe ik dat moet doen.
Ik heb een form met een select option voor costcenters. Zodra hier geselecteerd wordt wil ik dat het formulier dynamisch gewijzigd word.
NU is deze form er tevens een met een multiple update optie waar reeds een submit in zit.
Zodra ik nu de slect verander is het de bedoeling dat de lijst die te voorschijn komt alleen nog maar de betreffende castcenters laat zien waarna de gebruiker deze kan invullen en versturen.
Alles staat in hetzelfde formulier.
Schema:
1. pagina open alle velden voor deze maand zonder filter.
selecteer costcenters =>
2. zelfde pagina met alle velden voor deze maand gefilterd voor betreffende costcenter.
De lijst:
datum-Start-Eind-Naam-(editteble)Factuurnr)
Hopelijk weet iemand hier het antoord op.
Ik weet dat ik dus javascript moet gebruiken, echter begrijp niet hoe, en tevens hoe ik dan dmv een $_GET de variable omzet om aan de select query door te geven !
Gewijzigd op 01/01/1970 01:00:00 door Ton
Zal wel net zowerken als met de trekvensters
zal even kijken of ik het script nog hem
en dan zal ik die wel even posten
maar ik zoek nog wel even verder
Ik zou je er heel dankbaar voor zijn, niets is zo frustrerend als iets niet op kunnen lossen.
<select name="mySelect" onchange="document.getElementByID('formID').submit();">
</select>
wordt je form gesubmit zodra de selectbox verandert.
Daarna is via $_GET['mySelect'] de waarde van de select opvraagbaar. Wel zorgen dat je zelf de <option> tags ertussen zet.
edit: en dat je <form> een id heeft.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Daarnaast gaat de optie submit nu voor een probleem zorgen omdat die nogmaals in het forumlier voorkomt (het hoofdgedeelte)
Tot zover zou dit moeten werken maar mis nog de funtion :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$cstcntr = "";
if ( isset( $_POST[ 'sqlcost' ] ) ) {
$cstcntr = $_POST[ 'sqlcost' ];
}
if($cstcntr> "")
{
$sql="SELECT *, DATE_FORMAT(Datum,'%d-%m-%Y') as ritdatum FROM $tbl_name WHERE Costcenter='$cstcntr'";
}
else {
$sql="SELECT *, DATE_FORMAT(Datum,'%d-%m-%Y') as ritdatum FROM $tbl_name where MONTH(Datum) = $maand";
}
<td>select Costcenter
<select id="Costcenter" onchange="document.getElementByID('Costcenter').submit();">
<?
$sqlcost="SELECT Costcenter FROM bedrijven WHERE Actief='actief' ORDER BY Costcenter ";
$resultcost=mysql_query($sqlcost);
while($rowscost=mysql_fetch_array($resultcost))
{
echo "<OPTION VALUE=".$rowscost['Costcenter'].">".$rowscost['Costcenter'].
"</OPTION>";
}
?>
</select>
</td>
hieonder staat de uitvoer van de sql waarbij elke row een invoervak heeft. (die werkt) met een form
mysql_select_db("$db_name")or die("cannot select DB");
$cstcntr = "";
if ( isset( $_POST[ 'sqlcost' ] ) ) {
$cstcntr = $_POST[ 'sqlcost' ];
}
if($cstcntr> "")
{
$sql="SELECT *, DATE_FORMAT(Datum,'%d-%m-%Y') as ritdatum FROM $tbl_name WHERE Costcenter='$cstcntr'";
}
else {
$sql="SELECT *, DATE_FORMAT(Datum,'%d-%m-%Y') as ritdatum FROM $tbl_name where MONTH(Datum) = $maand";
}
<td>select Costcenter
<select id="Costcenter" onchange="document.getElementByID('Costcenter').submit();">
<?
$sqlcost="SELECT Costcenter FROM bedrijven WHERE Actief='actief' ORDER BY Costcenter ";
$resultcost=mysql_query($sqlcost);
while($rowscost=mysql_fetch_array($resultcost))
{
echo "<OPTION VALUE=".$rowscost['Costcenter'].">".$rowscost['Costcenter'].
"</OPTION>";
}
?>
</select>
</td>
hieonder staat de uitvoer van de sql waarbij elke row een invoervak heeft. (die werkt) met een form