PDA

Bekijk Volledige Versie : Foutmelding checkbox in PHP



Danny
13/01/06, 02:15
Hallo allemaal,

Ik zit met het volgende:
Ik ben een script aan het schrijven in PHP. Ik schrijf de inhoud van
een aantal textboxes weg naar een database. Dit werkt allemaal goed.
Maar zou gauw als ik de inhoud van een checkbox wil wegschrijven,
krijg ik wanneer de checkbox niet 'checked' is de volgende
foutmelding:

Notice: Undefined variable: Nieuwsbrief in c:\program
files\easyphp1-8\www\project1\login.php on line 147

Dit is een stukje van mij code:

<tr><td align="right"><b>Website</b></td>
<td><input type="text" name="Website"
value="<?php echo @$Website ?>"
size="40" maxlength="40"></td></tr>

<tr><td align="right"><b>Onderschrift</b></td>
<td><textarea name="Onderschrift" cols="60"
rows="10"><?php echo $Onderschrift ?></textarea></td>
</tr>

<tr><td align=right><b>E-mail Weergave</b></td>
<td><input type="checkbox" name="EmailWeergave"
value="<?php echo @$EmailWeergave ?>"></td>
</tr>

<tr><td align=right><b>Nieuwsbrief</b></td>
<td><input type="checkbox" name="Nieuwsbrief"
value="<?php echo @$Nieuwsbrief ?>"></td>
</tr>
<tr><td>&nbsp;</td>

Weet iemand misschien wat ik hieraan kan doen? de checkbox is
blijkbaar altijd undefined als ie niet 'checked' is...

mvg Danny

Juliette
13/01/06, 07:00
Danny wrote:
> Hallo allemaal,
>
> Ik zit met het volgende:
> Ik ben een script aan het schrijven in PHP. Ik schrijf de inhoud van
> een aantal textboxes weg naar een database. Dit werkt allemaal goed.
> Maar zou gauw als ik de inhoud van een checkbox wil wegschrijven,
> krijg ik wanneer de checkbox niet 'checked' is de volgende
> foutmelding:
>
> Notice: Undefined variable: Nieuwsbrief in c:\program
> files\easyphp1-8\www\project1\login.php on line 147
>
> Dit is een stukje van mij code:
>
> <tr><td align="right"><b>Website</b></td>
> <td><input type="text" name="Website"
> value="<?php echo @$Website ?>"
> size="40" maxlength="40"></td></tr>
>
> <tr><td align="right"><b>Onderschrift</b></td>
> <td><textarea name="Onderschrift" cols="60"
> rows="10"><?php echo $Onderschrift ?></textarea></td>
> </tr>
>
> <tr><td align=right><b>E-mail Weergave</b></td>
> <td><input type="checkbox" name="EmailWeergave"
> value="<?php echo @$EmailWeergave ?>"></td>
> </tr>
>
> <tr><td align=right><b>Nieuwsbrief</b></td>
> <td><input type="checkbox" name="Nieuwsbrief"
> value="<?php echo @$Nieuwsbrief ?>"></td>
> </tr>
> <tr><td>&nbsp;</td>
>
> Weet iemand misschien wat ik hieraan kan doen? de checkbox is
> blijkbaar altijd undefined als ie niet 'checked' is...
>
> mvg Danny
>

Vervang:
<?php echo @$EmailWeergave ?>

Door:
<?php print ( isset( $EmailWeergave ) === TRUE ? $EmailWeergave : '' ) ?>

Aannemend dat je wilt dat de boxes aangevinkt waren nu weer aangevinkt
worden, moet ik erbij zeggen dat de HTML die je voor de checkboxen
gebruikt fouten bevat, dus ook na vervanging zal je code alsnog niet het
gewenste resultaat opleveren.

Onderstaande zal waarschijnlijk beter werken:

<tr><td align=right><b>E-mail Weergave</b></td>
<td><input type="checkbox" name="EmailWeergave"
value="ja" <?php print ( ( isset( $EmailWeergave) && $EmailWeergave ===
'ja' ) ? 'CHECKED' : '' ) ?> ></td>
</tr>

Zelfde doen voor de tweede checkbox.

Uiteraard is het daarnaast beter om geen globals te gebruiken, maar dat
is weer een ander verhaal.

finalwebsites.com
13/01/06, 11:15
Als jij een checkbox verstuurd met een formulier, dat is deze variable
in php alleen beschikbaar als deze is aangevinkt. Met dit in het
achterhoofd zou het beter gaan.

Ik zal dan ook de variables testen met empty() (zie manual)


--

gr. Olaf
PHP classes and scripts: http://www.finalwebsites.com

Danny
13/01/06, 20:45
On Fri, 13 Jan 2006 06:42:51 +0100, Juliette
<jrf_no_spam@jokeaday.net> wrote:

>Danny wrote:
>> Hallo allemaal,
>>
>> Ik zit met het volgende:
>> Ik ben een script aan het schrijven in PHP. Ik schrijf de inhoud van
>> een aantal textboxes weg naar een database. Dit werkt allemaal goed.
>> Maar zou gauw als ik de inhoud van een checkbox wil wegschrijven,
>> krijg ik wanneer de checkbox niet 'checked' is de volgende
>> foutmelding:
>>
>> Notice: Undefined variable: Nieuwsbrief in c:\program
>> files\easyphp1-8\www\project1\login.php on line 147
>>
>> Dit is een stukje van mij code:
>>
>> <tr><td align="right"><b>Website</b></td>
>> <td><input type="text" name="Website"
>> value="<?php echo @$Website ?>"
>> size="40" maxlength="40"></td></tr>
>>
>> <tr><td align="right"><b>Onderschrift</b></td>
>> <td><textarea name="Onderschrift" cols="60"
>> rows="10"><?php echo $Onderschrift ?></textarea></td>
>> </tr>
>>
>> <tr><td align=right><b>E-mail Weergave</b></td>
>> <td><input type="checkbox" name="EmailWeergave"
>> value="<?php echo @$EmailWeergave ?>"></td>
>> </tr>
>>
>> <tr><td align=right><b>Nieuwsbrief</b></td>
>> <td><input type="checkbox" name="Nieuwsbrief"
>> value="<?php echo @$Nieuwsbrief ?>"></td>
>> </tr>
>> <tr><td>&nbsp;</td>
>>
>> Weet iemand misschien wat ik hieraan kan doen? de checkbox is
>> blijkbaar altijd undefined als ie niet 'checked' is...
>>
>> mvg Danny
>>
>
>Vervang:
><?php echo @$EmailWeergave ?>
>
>Door:
><?php print ( isset( $EmailWeergave ) === TRUE ? $EmailWeergave : '' ) ?>
>
>Aannemend dat je wilt dat de boxes aangevinkt waren nu weer aangevinkt
>worden, moet ik erbij zeggen dat de HTML die je voor de checkboxen
>gebruikt fouten bevat, dus ook na vervanging zal je code alsnog niet het
>gewenste resultaat opleveren.
>
>Onderstaande zal waarschijnlijk beter werken:
>
> <tr><td align=right><b>E-mail Weergave</b></td>
> <td><input type="checkbox" name="EmailWeergave"
>value="ja" <?php print ( ( isset( $EmailWeergave) && $EmailWeergave ===
>'ja' ) ? 'CHECKED' : '' ) ?> ></td>
> </tr>
>
>Zelfde doen voor de tweede checkbox.

Ik heb het geprobeerd zoals jij zei....maar helaas krijg ik nog steeds
dezelfde foutmelding.

In ieder geval alvast bedankt voor je reactie.

>
>Uiteraard is het daarnaast beter om geen globals te gebruiken, maar dat
>is weer een ander verhaal.

Danny
14/01/06, 01:00
On 13 Jan 2006 02:05:45 -0800, "finalwebsites.com"
<olaf.lederer@gmail.com> wrote:

>Als jij een checkbox verstuurd met een formulier, dat is deze variable
>in php alleen beschikbaar als deze is aangevinkt. Met dit in het
>achterhoofd zou het beter gaan.
>
>Ik zal dan ook de variables testen met empty() (zie manual)

Ik heb het probleem al opgelost. Ik heb er voor gezorgd dat een
variabele in het begin met een "0" wordt geladen. Maar zo gauw als een
checkbox is aangevinkt wordt deze waarde overschreven met een "1".

Bedankt voor jullie reacties, hebben me zeer geholpen!

Gr. Danny