Programma werkt maar krijg wel een error notice melding
Dat doe ik op onderstaande manier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?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>
');
}
?>
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
Gewijzigd op 07/08/2013 21:03:32 door MArk Peters
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:
mark wil je even de De foutmelding undefined index krijg je als je een item uit een array opvraagt die niet bestaat:
Oke maar ik gebruik geen array. Kan het niet zijn als ik een variabele gebruik die nog niet gedefinieerd is ofzo?
Doe eens dit en plaats het resultaat:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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>
');
}
?>
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.
Gewijzigd op 07/08/2013 22:44:28 door Frank Nietbelangrijk
Eddy E op 07/08/2013 21:11:55:
Ja, waarschijnlijk wel.
Doe eens dit en plaats het resultaat:
Doe eens dit en plaats het resultaat:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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>
');
}
?>
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 !