LauraBokkers / educom-webshop-database-1697464342

0 stars 0 forks source link

De id die je voor de radio buttons hebt gekozen hoeft niet gegarandeerd uniek te zijn #11

Open JeroenHeemskerk opened 11 months ago

JeroenHeemskerk commented 11 months ago

In de code hieronder krijgt iedere radio button een id die begint met 'radio_' en dan de key naam https://github.com/LauraBokkers/educom-webshop-database-1697464342/blob/c8e25a212c68542409f7f085d03b604d5816830a/form-fields.php#L34-L41

Dit is niet gegarandeerd een unieke Id, wat als ik het volgende doe

  showFormField('consent', 'Voorwaarden:', 'radio', $data, ['yes' => 'Ja', 'no' => 'Nee']);
  showFormField('newsletter', 'Nieuwsbrief:', 'radio', $data, ['yes' => 'Ja', 'no' => 'Nee']);

Dan heb ik twee id's "radio_yes" en twee id's "radio_no".

Beter is het om ook de unieke veld 'fieldName' OOK in het id op te nemen

    foreach ($options as $key => $value) { 
         $radioId = "$fieldName_$key";
         echo "<input type=$type name=$fieldName id=$radioId "; 
         if ($key == $fieldValue) echo "checked"; 
         echo " value=$key>"; 
         echo  "<label for=$radioId >$value</label>"; 
     }

Nu heb je een id "consent_yes" en "consent_no" en een id "newsletter_yes" en "newsletter_no", die wel uniek zijn

LauraBokkers commented 11 months ago

Ik heb net iets andere syntax gebruikt dan je hebt voorgesteld. Als ik het op bovenstaande manier schrijf (zoals in jouw voorbeeld), dan wordt de underscore geïnterpreteerd als deel van de variabele $fieldName.