Parse error: parse error in

inspiron8

Mitglied
Hallo,
anbei zwei Codes bei denen bekomme ich immer ein Parse error.
Ich find nur das Problem nicht
Gruß

PHP:
echo '<option value="' . $row['schicht'] . '"' . if(isset($row['schicht']) && $row['schicht'] == $row['schicht']) . $selected . '>' . $row['schicht'] . '</option>'; 

echo '<option value="' .$row['schicht']. '"' .if($row['schicht'] == $row['schicht']){ $selected="selected"}. '>' .$row['schicht']. '</option>';
 
Hi

Das dürfte das if mitten im echo sein :suspekt:

Für solche Inlinebedingungen gibts eine andere Schreibweise
PHP:
(bedingung) ? wennwahr : wennfalsch

//zB.
((isset($row['schicht']) && $row['schicht'] == $row['schicht']) ? $selected : '')
Und warum vergleichst du $row['schicht'] mit sich selbst?
 
Zuletzt bearbeitet:
Hi
Und warum vergleichst du $row['schicht'] mit sich selbst?

Das war ein copy/paste fehler sollte mit $_POST['schicht'] verglichen werden. Ich suche verzweifelt eine Möglichkeit, die Auswahl eines Selectfeldes (gefüllt aus einer DB) zu erhalten bis das Formular versendet wird ohne die Seite neu zu laden. Die Seite soll für weitere Eingaben geöffnet bleiben.

...jetzt kommt diese:
Parse error: parse error, expecting `','' or `';'' in

PHP:
echo '<option value="' . $row['schicht'] . '"' . (($row['schicht']) && $_POST['schicht'] == $row['schicht']) ? $selected : '') . '>' . $row['schicht'] . '</option>';
 
Ich seh den Fehler grad nicht. Ich würde aber die Schreibweise abändern damit es lesbarer wird. Einzeiler sollten nicht zu lange werden

PHP:
//Variante mit Curly Syntax
$selected = (($row['schicht']) && $_POST['schicht'] == $row['schicht']) ? 'selected' : '');
echo '<option value="{$row['schicht']}" {$selected}>{$row['schicht']}</option>';  

//variante mit printf
$selected = (($row['schicht']) && $_POST['schicht'] == $row['schicht']) ? 'selected' : '');
printf('<option value="%1$s" %2$s>%1$s</option>', $row['schicht'], $selected);
 
Zurück