Aan de hand van een wisselend aantal wil ik overeenkomstige aantal droplist-boxen maken.
Dat doe ik op onderstaande manier:
<?php
for ($i=0; $i<$AANTAL_BEOORDELINGEN; $i++)
{
$beoordeling="beoordeling" . $i;


$pdm->addColumnRij('<select class="ruimte" name='.$beoordeling.'>
<option value="JA">JA</option>
<option value="NEE">NEE</option></select>
');
}
?>
Dit gaat op zich allemaal goed maar ik krijg wel een error in mijn log-file.
Error is: [error] [client 192.168.1.2] PHP Notice: Undefined index: beoordeling15

Ik denk dat het te maken heeft dat beoordelingXX niet is aangemaakt. Klopt dat en op welke manier kan ik dat omzeilen want op voorhand weet ik niet hoeveel droplist-boxen ik nodig heb
mark wil je even de <? php ?> om de code heen zetten dat maakt het een stuk leesbaarder.

De foutmelding undefined index krijg je als je een item uit een array opvraagt die niet bestaat:

<?php
$a = array('appel', 'banaan');

echo $a[0]; // geeft appel
echo $a[1]; // geeft banaan
echo $a[2]; // geeft foutmelding Undefinde index
?>
Oke maar ik gebruik geen array. Kan het niet zijn als ik een variabele gebruik die nog niet gedefinieerd is ofzo?
Ja, waarschijnlijk wel.

Doe eens dit en plaats het resultaat:

<?php
echo 'Array $aantal_beoorlingen is: '.print_r($aantal_beoordelingen, true).' en bevat dus '.count($aantal_beoordelingen).' dingen.';

for ($i=0; $i<$AANTAL_BEOORDELINGEN; $i++)
{
$beoordeling="beoordeling" . $i;


$pdm->addColumnRij('<select class="ruimte" name='.$beoordeling.'>
<option value="JA">JA</option>
<option value="NEE">NEE</option></select>
');
}
?>
Je krijgt die foutmelding niet op jouw bovenstaande stukje code, maar waarschijnlijk bij de verwerking van het formulier. Misschien dat je daar de 0 based vergeet, 15 dropdowns gaan van beoordeling0 tot beoordeling14!
MArk Peters op 07/08/2013 21:04:36

Oke maar ik gebruik geen array. Kan het niet zijn als ik een variabele gebruik die nog niet gedefinieerd is ofzo?


$_POST en $_GET zijn ook arrays.
$_POST['beoordeling15'] bestaat dan dus niet.
Eddy E op 07/08/2013 21:11:55

Ja, waarschijnlijk wel.

Doe eens dit en plaats het resultaat:

<?php
echo 'Array $aantal_beoorlingen is: '.print_r($aantal_beoordelingen, true).' en bevat dus '.count($aantal_beoordelingen).' dingen.';

for ($i=0; $i<$AANTAL_BEOORDELINGEN; $i++)
{
$beoordeling="beoordeling" . $i;


$pdm->addColumnRij('<select class="ruimte" name='.$beoordeling.'>
<option value="JA">JA</option>
<option value="NEE">NEE</option></select>
');
}
?>

Resultaat is: $aantal_beoorlingen is: 11 en bevat dus 1 dingen


Toevoeging op 08/08/2013 10:31:34:

Hallo,

Ik ben er uit er het bleek in de S_POST aanroep te zitten van variabelen die er niet waren.
Tja dat krijg je als je code hergebruikt ;)

Maar bedankt voor het meedenken en tips etc !

Reageren