Data uit een Dbase in een Drop Down Menu zetten.
Heb geprobeerd om op het forum een script te zoeken waarmee ik datarecords haal uit een dbase. Deze plaats ik dan in 1 of 2 kolommen naast elkaar in een Drop Down Menu. Hiermee wil ik dan 1 waarde selecteren die dan in een invoerscherm kan worden geplaatst om daarna weer op te slaan.
Het lukt me wel om data op te halen met b.v.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$con = mysql_connect($host, $LoginNaam, $Password);
if (!$con)
{
die(mysql_error("can't connect"));
}
mysql_select_db($db_name, $con) or die(mysql_error("can't find database"));
$result = mysql_query("SELECT Voorletter, Achternaam FROM $tbl_name WHERE Klantnummer='$Klantnummer'");
?>
$con = mysql_connect($host, $LoginNaam, $Password);
if (!$con)
{
die(mysql_error("can't connect"));
}
mysql_select_db($db_name, $con) or die(mysql_error("can't find database"));
$result = mysql_query("SELECT Voorletter, Achternaam FROM $tbl_name WHERE Klantnummer='$Klantnummer'");
?>
Een Drop Down menu maken lukt op de volgende manier:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
...
<td ><SELECT name="Munteenheid">
<OPTION value="EUR">EUR</OPTION>
<OPTION value="USD">USD</OPTION>
<OPTION value="CAD">CAD</OPTION>
</SELECT></td>
....
?>
...
<td ><SELECT name="Munteenheid">
<OPTION value="EUR">EUR</OPTION>
<OPTION value="USD">USD</OPTION>
<OPTION value="CAD">CAD</OPTION>
</SELECT></td>
....
?>
Maar hierbij zijn de 3 OPTION Values vast. Deze wil ik dus gevuld hebben met de specifieke data uit de dbase.
Ik ben erg benieuwd naar de oplossing.
Vriendelijk dank.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
...
$result = mysql_query("SELECT ...");
...
echo '<SELECT name="Munteenheid">';
while($row = mysql_fetch_assoc($result)) {
echo '<OPTION value="' . $row['Achternaam'] . '">' . $row['Achternaam'] . '</OPTION>';
}
echo '</SELECT>';
?>
...
$result = mysql_query("SELECT ...");
...
echo '<SELECT name="Munteenheid">';
while($row = mysql_fetch_assoc($result)) {
echo '<OPTION value="' . $row['Achternaam'] . '">' . $row['Achternaam'] . '</OPTION>';
}
echo '</SELECT>';
?>
Ik heb het volgende gemaakt en volgens mij is dat hetzelfde als jouw antwoord.
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
33
34
35
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
33
34
35
<?php
$host = "localhost";
$LoginNaam = "";
$Password = "";
$db_name = "";
$tbl_name = "TransactieTabel";
$con = mysql_connect($host, $LoginNaam, $Password);
if (!$con)
{
die(mysql_error("can't connect"));
}
mysql_select_db($db_name, $con) or die(mysql_error("can't find database"));
// Selecteer uit de Dbase de juiste informatie op basis van het doorgegeven Boekjaar.
$Boekjaar = 2013;
$result = mysql_query ( "SELECT RelatieNaam FROM " . $tbl_name . " WHERE (Boekjaar = $Boekjaar AND Rekeninghouder = 'xxx') ORDER BY TransactieID DESC" );
//Begin van dropdown
echo '<select>';
while ($data = mysql_fetch_assoc($result)):
//De data in de dropdown zetten
echo '<option>'.$data['RelatieNaam'].'</option>';
endwhile;
//De dropdown beëindigen
echo '</select>';
?>
$host = "localhost";
$LoginNaam = "";
$Password = "";
$db_name = "";
$tbl_name = "TransactieTabel";
$con = mysql_connect($host, $LoginNaam, $Password);
if (!$con)
{
die(mysql_error("can't connect"));
}
mysql_select_db($db_name, $con) or die(mysql_error("can't find database"));
// Selecteer uit de Dbase de juiste informatie op basis van het doorgegeven Boekjaar.
$Boekjaar = 2013;
$result = mysql_query ( "SELECT RelatieNaam FROM " . $tbl_name . " WHERE (Boekjaar = $Boekjaar AND Rekeninghouder = 'xxx') ORDER BY TransactieID DESC" );
//Begin van dropdown
echo '<select>';
while ($data = mysql_fetch_assoc($result)):
//De data in de dropdown zetten
echo '<option>'.$data['RelatieNaam'].'</option>';
endwhile;
//De dropdown beëindigen
echo '</select>';
?>
Ik zie echte dat jij inderdaad twee kolommen hebt gemaakt. Dat ga ik dus gelijk ook proberen.
Bedankt voor je antwoord.
Toevoeging op 19/04/2013 10:29:38:
Hoi, Kris,
Sorry, dacht even dat je twee kolommen had gemaakt, maar dat is niet zo. Ik ga proberen dat wel voor elkaar te krijgen, maar ben blij met een suggestie als je die hebt.
Elke <option> heeft een value => die wordt naar de server gestuurd; en een waarde tussen <option></option> => die wordt aan de gebruiker getoond.
bv.
Code (php)
1
2
3
4
2
3
4
<select name="geslacht">
<option value="m">Mr.</option>
<option value="v">Mevr.</option>
</select>
<option value="m">Mr.</option>
<option value="v">Mevr.</option>
</select>
De gebruiker ziet dus "Mevr.", maar de computer ziet "v".
Dat mag uiteraard de zelfde waarde zijn, maar soms wil je een kortere (gecodeerde) waarde in de database zetten.
De <select> zelf: de <select> heeft een name. Die zet je als index van je $_POST.
De value van de geselecteerde <option> wordt naar de server gestuurd.
Dus, bij de verwerking krijg je
$_POST['geslacht'] // = "m" ofwel = "v"
Gewijzigd op 19/04/2013 10:49:33 door Kris Peeters