login  Naam:   Wachtwoord: 
Registreer je!
 Forum

undefined index (Opgelost)

Offline Frank56 - 17/11/2012 21:10
Avatar van Frank56Nieuw lid Ik gebruik de volgende code voor een checkbox die niet altijd aangevinkt is.

  1. <input type="checkbox" name="dag" <?php if (!empty($dr)) {echo 'checked="checked"';} ?> value="dag""/>dag


De bedoelde gegevens komen prima in de database te staan. Als hij aangevinkt is, krijg ik geen foutmelding, maar als dat wel het geval is, krijg ik de foutmelding

undefined index

op het veld dat leeg blijft.

Het vreemde is dat de gegevens wel goed in de database komen te staan. Hoe kan ik die foutmelding voorkomen?

4 antwoorden

Gesponsorde links
Offline vinTage - 17/11/2012 21:22
Avatar van vinTage Nieuw lid Wat is $dr ?

anyway, checkboxes 'posten' alleen als ze zijn aangevinkt, dus je zult iets moeten doen in de trant van

$cb_waarde = isset($_POST['mijnCheckbox']) ? $_POST['mijnCheckbox'] : '';

Waarbij je dus $cb_waarde gebruikt om je database te inserten/updaten
Offline Frank56 - 19/11/2012 09:05
Avatar van Frank56 Nieuw lid Ik heb de regel alsvolgt veranderd, maar de foutmelding blijft terugkomen.

<input type="checkbox" name="ma" <?php $ab_waarde = isset($_POST['$ma']) ? $_POST['$ma'] : ''; if (!empty($ab)) {echo 'checked="checked"';} ?> value="ma""/>ma

Is er iets te veranderen, zodat ik die undifined index niet meer zie?

Ik zie hem overigens alleen in PHPMyAdmin, niet als ik hem op internet zet.
Offline Martijn - 19/11/2012 17:09 (laatste wijziging 19/11/2012 17:16)
Avatar van Martijn Crew PHP undefined index houd in dat je een key gebruikt die niet bestaat, voorbeeldje gaat denk duidelijker zijn:

  1. $array = array();
  2. $array['voorbeeldKey'] = 1;
  3. $array['andereKey'] = 2;
  4.  
  5. echo $array['voorbeeldKey']// Zal ' 1 ' laten zien
  6. echo $array['BESTAAT NIET']// Zal niets laten zien, en je undefined index melding geven.



Is in principe een melding waar je niets aan te doen hoeft, voor de netheid zou je m kunnen defineren voordat je er dingen mee gaat doen, maar is niet echt nodig. Alleen in high performance situaties ga je dit soort dingetjes denk pas merken

Nog een edit: Wat je doet is dit:
$_POST['$ab']. Er staat single quotes om heen, dit geeft je probleem. Single quotes zorgen dat de letterlijke waarde genomen wordt, dus niet de waarde van de variabel $ab, maar de tekst "$ab".

Oplossing: Quotes weghalen. Variabelen hoeven niet met quotes (beter van niet) als key. Als je perse quotes er omheen wilt, moet je doublequotes gebruiken:
  1. $_POST[ $variabel ]; // Deze is de beste!
  2. $_POST['$variabel']; // Deze zal naar een key zoeken die letterlijk '$variabel'heet
  3. $_POST["$variabel"]; // Doet hetzelfde als de eerste, maar 'slordiger'
  4. $_POST[ $variabel.'ExtraTekst'];// voor als je er een pre- of suffix voor hebt
Bedankt door: Frank56
Offline Frank56 - 19/11/2012 20:03
Avatar van Frank56 Nieuw lid Hartelijk dank.

De quotes ga ik aanpassen en de foutmelding laat ik even voor wat het is. 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s