Hallo,

Ik heb een listbox dat ik opvul met gegevens uit een database.
Dit lukt zonder probleme.

Nu zou ik graag de gekozen waarde doorgeven naar een andere pagina.
Het probleem is dat ik telkens de laatste wsaarde uit de listbox doorgeef.
Blijkbaar wordt de gekozen waarde niet als 'selected' gemarkeerd.

Enig idee hoe ik dit kan realiseren?

Alvast bedankt

Lainkes
Toon eens wat je nu doet.

Hoe bedoel je, doorgeven naar een andere pagina?
Is dat met formulieren (<form>, submit knop, ...)
Ja, inderdaad.
Het is met een form en een submit knop.
Dit werkt, alleen wordt de verkeerde waarde doorgegeven.

Lainkes
Beetje relevante code kan handig zijn.
Anders blijft het gissen.
Ik heb hier nu geen glazen bol ter beschikking.
Toon eens code.
Dan kunnen we zien wat je van plan bent; zien we fouten en kunnen we verbeteren.

Op deze manier komen mensen het snelst tot een antwoord op dit forum.

In het ijle beginnen praten over code, levert heel traag resultaat; en mensen die naast mekaar aan het praten zijn.
dit is de code :


<form id="form1" name="form1" method="post" action="insert_record.php">
<table width="800" border="0">
<tr>
<td valign="top">Naam / Nom</td>
<td valign="top">
<?php
// connect to the database
include('connect-db.php');

$result_status = mysql_query("SELECT * FROM cir_users order by tbl_user_name ASC");
if($result_status === FALSE) {
die(mysql_error());}

echo '<select name="frm_user_id" onchange="self.location.reload()">';
while($row_status=mysql_fetch_array($result_status))
{
$user_name = $row_status['tbl_user_name'];
$user_id = $row_status['tbl_user_id'];
$full_name = $row_status['tbl_full_name'];
echo '<option value="' . $user_id . '">' . $user_name . '</option>';
}
echo '</select>';

?>
</td>
</tr>
<tr>
<td valign="top">Opmerking / Remarque</td>
<td valign="top">
<label>
<textarea name="remarks" id="remarks" cols="80" rows="25"></textarea>
</label>
</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td valign="top"><input type="submit" name="button" id="button" value="Verzenden / Envoyer" /></td>
</tr>


</table>
<input type="hidden" name="frm_user_name" id="frm_user_name" value="<?php echo "$full_name";?>" />
</form>

onchange="self.location.reload()"

Is het de bedoeling dat de pagina wordt herladen, vanaf dat de gebruiker de select verandert (dit is wat die onchange suggereert)?
Of is het de bedoeling dat de gebruiker op de knop drukt?

Beide samen is nogal vreemd.
echo '<select name="frm_user_id" onchange="self.location.reload()">';

Haal dat Javascript eens weg.
echo '<select name="frm_user_id">';

En wat is het nut van: <input type="hidden" name="frm_user_name" .... ?
Hier komt altijd de laatst gevonden naam in te staan.
Bedoeling is dat de gebruiker op de knop drukt, en zo de waarde van de listbox wordt doorgegeven.
Ik dacht dat met de 'self.location.reload' de pagina herladen werd, en dat de geselecteerde waarde als 'selected' werd gemarkeerd.
Maar ook zonder dat javascript krijg ik telkens de laatste waarde uit de listbox.

Het hidden veld was voor testing bedoelt. Dit mag genegeerd worden.
Lijkt mij stug.
Hoe ziet het er nu uit?
En wat geeft print_r($_POST) op insert_record.php?
Dit is het resultaat :

Array ( [frm_user_id] => 4 [remarks] => Opmerking [button] => Verzenden / Envoyer [frm_user_name] => Xavier Bernaerts )

frm_user_id is wel correct.
frm_user_name is niet correct.

Ik heb het gevoel dat ik de naam niet kan doorgeven. Maar als ik de frm_user_id al kan doorgeven is het ook goed.
Ik kan dan op de andere pagina een "select" doen en zo de coresponderende user_nane ophalen.

Reageren