Hoi,
ik heb het "oude" scriptje van Jan Koehoorn overgenomen om een aantal formulieren in elkaar te flansen. In de comment van zijn script zelfs geeft hij aan dat hij geen waarde meegeeft voor de id en name van een submit:
<?php
//Opbouw van html in de klasse
case 'submit':
$this->html .= PHP_EOL . '<p>';
$this->html .= PHP_EOL . '<input type="submit" value="' . $this->value . '" />';
$this->html .= PHP_EOL . '</p>';
break;
//Aanroepen van formulierelement in het object
'Verstuur' => new formelement (false , false , 'submit' , 'Verstuur' , REQUIRED)
?>
Dat gaat allemaal lekker maar ik zou wel een naam nodig hebben voor mijn submit omdat ik 2 submit's in één form wil stoppen (Verwijder en Verstuur). Dan kan ik werken met een if-statement:
<?php
if ($_POST['delete']) {doe dit}
else if($_POST['send']) {doe dat}
?>
Ik heb geprobeerd een id toe te voegen en daar heeft het script geen problemen mee. Met de name erbij lukt het niet:
<?php
case 'submit':
$this->html .= PHP_EOL . '<p>';
$this->html .= PHP_EOL . '<input type="submit" id="' . $this->id . '" name="' $this->name . '" value="' . $this->value . '" />';
$this->html .= PHP_EOL . '</p>';
break;
'Verwijder' => new formelement ('delete' , 'delete' , 'submit', 'Verwijder' , REQUIRED)
?>
Een name toevoegen geeft hier een foutmelding:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// kijken of er met het form geklooid is
foreach ($_POST as $key => $val) {
if (!in_array ($key, array_keys ($formelements))) {
array_push ($errs, 'Er is een fout opgetreden bij de veldnamen van het formulier');
}
else {
verdere foutafhandeling
}
?>
Iemand dit dit in het verleden (is al een 2 jaar oud topic) opgelost heeft of dezelfde fout tegengekomen is?
grtz
2.062 views