Data van meerder Pull Down menu's versturen
om mijn vraag te vereenvoudigen heb ik 2 pull down menu's. Als ik op 1 van de menu's een keuze maak, wil ik dat een nieuwe pagina wordt geopend met de gegevens van BEIDE pull down menu's. Met andere woorden: er moet voordat naar een nieuwe pagina wordt gesprongen eerst nog gekeken worden wat de waarde is van het andere pull down menu.
Is deze vraag al eens eerder behandeld? Of heeft iemand een eenvoudig script.
Met vriendelijke groet.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<select name="de_eerste">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="de_tweede">
<option value="1">1</option>
<option value="2">2</option>
</select>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="de_tweede">
<option value="1">1</option>
<option value="2">2</option>
</select>
Als ik alleen bij de_eerste iets aanklik, moet het naar een tweede pagina springen en ook de value van de_tweede meenemen?
Dat is gewoon normaal in html te doen met een normaal <form>. Submit knopje eronder en beide selects worden verzonden.
Maar ik heb het idee dat je dat niet helemaal bedoeld?
Gewijzigd op 05/06/2014 13:09:09 door Ramon van Dongen
onClick="MM_jumpMenu('parent/, this,0)"
Bij het selecteren "onClick" ga ik dus naar slechts alleen de <option value .... > maar wil ook tevens de value van de tweede menu meenemen.
Hoe moet ik het grotere plaatje precies voor me zien?
Is het echt een navigatie menu of meer om bepaalde resultaten onder elkaar te zien die je hierdoor filtert?
Menu 1 heeft de keuze uit: Appels
Peren
Bananen
Menu 2 heeft de keuze uit: Beren
Apen
Geiten
Menu 1 is standaard geselecteerd op Peren en Menu 2 op Geiten.
Als ik op Menu 1 Bananen klik en Menu 2 laat ik staan (dus staat op Geiten) dan wil ik dat een nieuwe pagina wordt geopend waarbij ik als datastring kan gebruiken:
Bananen en Geiten
Klik ik b.v. op menu 2 op Geiten (wat dus al geselecteerd was, maar ik gebruik dus onClick="MM_jumpMenu()" ) dat moet ik de datastring Peren + Geiten doorgestuurd krijgen naar de volgende pagina.
Is misschien een beetje omslachtig uitgelegd, maar ik hoop dat het duidelijk is waar ik naar op zoek ben.
Bijkomende vraag is: In het pulldown menu kan je met
option value=" ...." selected> Bananen</option> een voorkeur maken welke waarde (in dit geval Bananen) standaard geselecteerd is.
Wat moet ik voor selected veranderen om de laatste keuze die is aangeklikt te laten staan?
Alvast bedankt.
op de onChange van de eerste select een javascriptje aanroepen dat het form submit.
Pipo, heb je een voorbeeld waarmee ik kan experimenteren?
Quote:
Wat moet ik voor selected veranderen om de laatste keuze die is aangeklikt te laten staan?
<option value="iets" selected="selected">iets</option>
Quote:
op de onChange van de eerste select een javascriptje aanroepen dat het form submit.
Het blijft dan wel, maar blijkbaar is dat ook de bedoeling, dat als je de eerste wijzigt dat het form direct submit. De tweede kun je dan dus niet meer aanpassen...
Eerst de onChange aan de selectbox hangen :
Vervolgens ergens in de header of zo van je HTML-document :
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<script type="text/javascript>
function formSubmit()
{
document.form[0].submit();
}
<script>
function formSubmit()
{
document.form[0].submit();
}
<script>
Bovenstaand zal vast niet foutloos zijn maar kont zeker een heel eind in de richting.
Ik heb in 1 pull down menu het volgende:
<option value="/webpage/webpage.php?Boekjaar=2010">2010</option>
<option value="/webpage/webpage.php?Boekjaar=2011">2011</option>
<option value="/webpage/webpage.php?Boekjaar=2012" selected>2012</option>
In dit geval zal 2012 als geselecteerd staan.
met jouw toevoeging selected="selected" krijg ik nog niet het gewenste resultaat.
Als ik op de webpagina in het menu op 2010 klik dan verandert wel de inhoud van de pagina, maar het pull down menu vervalt weer naar 2012. En eigenlijk wil ik dat het op 2010 blijft staan. In de bovenstaande regel moet dus selected een variabele zijn die op elke positie kan staan. O.i.d. waarbij het menu op de geselecteerde waarde blijft staan.
Dan zul je iets met php moeten doen:
Code (php)
En dat dan voor elk jaar...
Dat kijkt of $_GET['Boekjaar'] bestaat en of het een betreffend jaartal is. Als beide condities kloppen moet hij dus selected="selected" echoën.
Moet je er alleen zelf nog in maken wat hij moet echoën als er geen $_GET['Boekjaar'] is...
het script werkt. bedankt daarvoor. Ga het verder uitwerken.
Ik maakte al gebruik van de functie $_GET aan het begin van de pagina.
Ik gebruikte $Boekjaar al als een variabele door de webpage. Maar met jouw aanvulling werkt nu ook de "selected" functie.
Maar dan toch weer terug naar de eerste vraag.
Hoe krijg ik de 2 waardes uit de beide pull down menu's als ik op één van beide druk?
Toevoeging op 05/06/2014 19:39:42:
Ramon,
Mijn vorige vraag staat nog steeds, maar ik denk dat ik een mogelijke oplossing heb gevonden voor de vraag. Als ik een selectie maak moet het mogelijk zijn om een variabele aan te maken. Deze kan ik dan meesturen. Als ik 2 variabele kan aanmaken en deze kan meesturen kan ik ze bij het laden van de pagina uitlezen en gebruiken.
Wat ik nu eerst wil proberen is om de pull down menu's vanuit een SQL database te vullen met die waardes die in een tabel staan.
b.v. Tabel 1 heeft: Balans, Financieel, W&V
Tabel 2 heeft: Boekjaar: 2010, 2011, etc.
Hoe kan ik het pull down menu nu vullen met de gegevens uit Tabel 1? Als ik dat heb, kan ik de variabele selecteren en doorgeven aan de volgende pagina!!!!
Althans, dat hoop ik dan.
Heb jij een script om een pull down menu te maken met records uit een tabel via SQL?
Alvast bedankt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$tabel1 = (isset($_GET['tabel1'])) ? (int) $_GET['tabel1'] : 1;
$boekjaar = (isset($_GET['boekjaar'])) ? (int) $_GET['boekjaar'] : 2010;
$result1 = mysqli_query($con, "SELECT id, name FROM tabel1");
$result_bj = mysqli_query($con, "SELECT boekjaar FROM boekjaren");
?>
<select name="tabel1" onChange="this.form.submit()">
<?php
while ($row = mysqli_fetch_assoc($result1)) {
echo '
<option value="' . $row['id'] .
(($row['id'] == $tabel1) ? ' selected="selected"' : '') . '>' .
$row['name'] . '</option>';
}
?>
</select>
$tabel1 = (isset($_GET['tabel1'])) ? (int) $_GET['tabel1'] : 1;
$boekjaar = (isset($_GET['boekjaar'])) ? (int) $_GET['boekjaar'] : 2010;
$result1 = mysqli_query($con, "SELECT id, name FROM tabel1");
$result_bj = mysqli_query($con, "SELECT boekjaar FROM boekjaren");
?>
<select name="tabel1" onChange="this.form.submit()">
<?php
while ($row = mysqli_fetch_assoc($result1)) {
echo '
<option value="' . $row['id'] .
(($row['id'] == $tabel1) ? ' selected="selected"' : '') . '>' .
$row['name'] . '</option>';
}
?>
</select>
Gewijzigd op 05/06/2014 20:17:38 door Ger van Steenderen
zie net je script. Ga het gelijk uitproberen. Alvast bedankt.
Toevoeging op 05/06/2014 21:14:43:
Hoi Ger,
Heb de code overgenomen. Het werkt nog niet, maar heb er vertrouwen in dat het wel gaat lukken.
Op regel 6 roep je $result_bj aan. Hiermee selecteer je de boekjaren in de tabel boekjaren. Ik kom verder de uitkomst niet tegen. Ik zou verwachten dat je het in de While loop koppelt aan het aantal keuzemogelijkheden van het pull down menu.
Zie ik iets over het hoofd?
Grt.
Jawel, de tweede select kan je op de zelfde manier doen, maar dat mag je zelf uitvogelen ;-)
Toevoeging op 05/06/2014 22:36:08:
Ger, ik heb het gedeeltelijk werkend gekregen.
Bij de iteratie in de while loop worden slechts de even items uit de tabel getoond.
In de Tabel "Boekjaar" heb ik staan: 2005, 2006, 2007, 2008, 2009, 2010, etc.
In de while loop zie ik uiteindelijk onder echo slechts 2006, 2008, 2010, etc.
ergens wordt dus een deel overgeslagen.
Enig idee wat dat kan zijn?
Toevoeging op 05/06/2014 23:38:46:
Ger,
nog een aanvulling. Ik wil bij het selecteren van 1 van de keuzes uit het pull down menu naar een andere pagina springen.
Toen ik de volgende regel (het stukje met de "/subdiretory/webpagina.php") toevoegde kreeg ik wel alle records uit de tabel te zien.
Ik ben er nog niet achter hoe dit kan.
</php
while ($row = mysql_fetch_assoc($result_bj)) {
echo '
<option value= "/subdirectory/webpagina.php" "' . $row['boekjaarId'] .
(($row['BoekjaarId'] == $boekjaar) ? 'selected="selected"' : ' ') . '>' .
$row['Boekjaar'] . '</option>';
}
?>
Voordat ik het pull down menu maakte met een tabel als basis had ik eerst meerdere <option value= </option> statements onder elkaar staan.
Dat wil ik natuurlijk vervangen met deze tabel.
Ik ben er nog niet achter hoe ik dat het beste kan doen. Wat de bedoeling is, is dat ik aan het statement van de andere webpagina.php bijvoorbeeld: ?boekjaar=2013 meegeef, maar dan vanuit de tabel
Dus /subdirectory/webpagina.php?boekjaar=2013, maar dan anders.
Toevoeging op 05/06/2014 23:39:21:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
while ($row = mysql_fetch_assoc($result_bj)) {
echo '
<option value= "/subdirectory/webpagina.php" "' . $row['boekjaarId'] .
(($row['BoekjaarId'] == $boekjaar) ? 'selected="selected"' : ' ') . '>' .
$row['Boekjaar'] . '</option>';
}
?>
while ($row = mysql_fetch_assoc($result_bj)) {
echo '
<option value= "/subdirectory/webpagina.php" "' . $row['boekjaarId'] .
(($row['BoekjaarId'] == $boekjaar) ? 'selected="selected"' : ' ') . '>' .
$row['Boekjaar'] . '</option>';
}
?>