Hallo iedereen!

Op een.php probeer ik een form te verzenden met een dropdown via <select><option>:

<?php
echo '<form name="somename" action="twee.php" method="post"><select name="pickme">';

echo '<option value="'.array("id" => "1", "name" => "Els").'">';
echo 'Naam 1';
echo '</option>';

echo '<option value="'.array("id" => "2", "name" => "Bas").'">';
echo 'Naam 2';
echo '</option>';

echo '<input type="submit" value="Submit" />';
echo '</select></form>';

?>

In twee.php heb ik dan:

<?php

$something = $_POST['pickme'];
echo $something["id"];
echo $something["name"];
?>

Op de pagina twee.php staat nu helaas niet "1Els" of "2Bas" maar wel "AA".
Gelijk wat ik ook invul, ik krijg altijd "AA" te zien.

Iemand die een oplossing weet? Of een andere manier om meerdere values per optie door te sturen via het form?

Thanks!
Je kunt een array niet op deze manier doorsturen. Wat je kunt doen is value="id2nameBas" ervan maken en dat dan strippen voor de waardes. Maar waarom zou je dat doen want ID is uniek dus is gekoppeld waarschijnlijk aan een naam dus hoef je dat niet door te sturen.

Edit: wat ik er mee bedoel is dus alleen ID als value meesturen;
In $_POST['pickme'] zit de string 'Array'.

Dus:
// hier zet je 'Array' in $something
$something = $_POST['pickme'];
// "id" (en ook "name") is onbekend en wordt dus 0 (nul)
// en $something[0] geeft de eerste letter
echo $something["id"];
echo $something["name"];
// dus krijg je twee keer een 'A' => AA

Je zou dit kunnen doen:
echo '<option value="1,Els">';
echo 'Naam 1';
echo '</option>';

En dan zo ophalen:
$something = explode(',', $_POST['pickme']);
echo $something[0]; ==> is het id
echo $something[1]; ==> is de naam
Bedankt van het antwoord!

Reageren