Input value if-clause funktioniert nicht richtig

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Jan-Frederik Stieler

Monsterator
Moderator
Moin,

ich hab das problem das ich ein vorausgefülltes Inputtextfeld (Datum) mit einer anderen variablen füllen möchte wenn diese verfügbar ist.
Momentan bekomm ich aber leider zweimal das Datum ausgefüllt wenn $formItems[$uniqueid] verfügbar ist.
Und ich bekomms einfach nicht hin.

PHP:
<input
type="<?php echo $type ?>"
class="form-control span-10 <?php echo $module->fieldclass(); ?>"
style="<?php echo $module->fieldstyle(); ?>" <?php e($module->inputdisabled()->bool(), 'readonly', ''); ?>
id="<?php echo $uniqueid; ?>"
name="<?php echo $uniqueid; ?>"
data-type=<?php echo $module->inputtype(); ?>
data-name="<?php echo $module->inputname(); ?>"

value="<?php if($module->inputtype() == 'date' AND !isset($formItems[$uniqueid])): echo $today; elseif(isset($formItems[$uniqueid])): echo $formItems[$uniqueid]; else: ''; endif; ?>"

<?php e($module->inputtype() == 'number', 'min="' . $module->inputmin() . '"'); ?>
<?php e($module->inputrequired()->bool(), 'required'); ?>
<?php if($module->inputtype() == 'date'): ?>data-provide="datepicker" data-date-format="dd.mm.yyyy" <?php endif; ?>>

Es geht um die Zeile mit dem value.
 
Huuuu.. Alles auf einer Zeile. ich würde nicht.
Hier mal zerlegt in lesbare Form
PHP:
value="<?php
    if($module->inputtype() == 'date' AND !isset($formItems[$uniqueid])){
        echo $today;    
    }elseif(isset($formItems[$uniqueid])){
        echo $formItems[$uniqueid];
    }else{
        ''
    }
?>"
Da fällt schon mal auf, das am Schluss ein echo fehlt. Oder was sollen die ''?
Eigentlich kann man den ganzenen else weglassen
PHP:
value="<?php
    if($module->inputtype() == 'date' AND !isset($formItems[$uniqueid])){
        echo $today;    
    }elseif(isset($formItems[$uniqueid])){
        echo $formItems[$uniqueid];
    }
?>"

Und falls du wirklich einen Einzeiler machen willst (mach es nicht!):
PHP:
value="<?php echo ($module->inputtype() == 'date' AND !isset($formItems[$uniqueid]) ? $today : (isset($formItems[$uniqueid]) ?  $formItems[$uniqueid] : '')); ?>
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück