Etienne Claessen op 04/08/2015 21:36:41

Hoi,

Ik heb deze functie gebouwd (heb weinig ervaring met functies)
<?
function invoer(){

global $db;
echo "<input class=\"input\" type=\"text\" name=\"aantal[]\" size=\"3\" maxlength=\"3\" placeholder =\"Aantal\">";
$sql="SELECT id,item,deleted from tabelx where deleted !='Y'";
$result=mysql_query($sql,$db) or die(mysql_error());
echo "&nbsp;<select class=\"input\" name=\"categorie[]\">";
echo "<option value=''>selecteer categorie</option>";
while ($row=mysql_fetch_array($result)) {
echo "<option value=$row[0]>".$row[1]."</option>";
}
echo "</select>";
echo "&nbsp;<input class=\"input\" type=\"text\" name=\"item[]\" size=\"125\" maxlength=\"125\" placeholder =\"Item\">";
echo "<br/>";
}
?>

Met dit gedeelte probeer ik de data op te halen:
<?
foreach ($_REQUEST['aantal'] as $value) {

if ($value) {
echo "<p style=\"color:black;\">
AANTAL: ".$aantal[$value]."&nbsp;
CATEGORIE: ".$categorie[$value]."&nbsp;
ITEM: ".$item[$value]."</p><br />";
}
}
?>
Als ik de functie 10x achter elkaar aanroep, en de formuliervelden invul, krijg ik als uitvoer 1x de ingevoerde data, en 9 lege rijen.
Iemand een idee hoe ik dit kan oplossen?

Vervang $_REQUEST door $_POST en foreach (... as $value) door foreach (... as $key => $value). En binnen je loop moet je dan refereren aan $key in plaats van $value.

Reageren