• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP code für checkbox in select umschreiben?

Fr3ddy

Mitglied
Hi,

kann man diesen code, der eine checkbox ausgibt so umschreiben, dass eine selectbox ausgegeben wird?

PHP-Code:
<?php if(is_array($this->options) && count($this->options)>0): ?> <fieldset id="ctrl_<?php echo $this->urlparam; ?>" class="checkbox_container">
<?php
$count = 0;
foreach($this->options as $option): $class = ($count == 0) ? 'first ' : ''; $class .= ($count == count($this->options) - 1 ) ? 'last ' : ''; $class .= ($count % 2 == 1) ? 'even' : 'odd'; $class .= (strlen($option['class'])) ? ' ' . $option['class'] : ''; ?>
<?php
$field = sprintf('<input type="checkbox" name="%s[]" id="opt_%s_%s" class="checkbox%s" value="%s"%s />', $this->urlparam, $this->urlparam, $count, $this->submit ? ' submitonchange' : '', $option['key'],
($option['active'] ? ' checked="checked"':'')
); $label = sprintf('<label id="lbl_%s_%s" for="opt_%s_%s">%s%s</label>', $this->urlparam, $count, $this->urlparam, $count, $option['value'],
(($this->showCount) ? ' <span class="count">('. $this->count[$option['key']] .')</span>' : '')
); $count++; ?> <span class="<?php echo $class; ?>"><?php echo $field; ?> <?php echo $label; ?></span>
<?php endforeach; ?> </fieldset>
<?php endif; ?>
 
Hi,

kann man diesen code, der eine checkbox ausgibt so umschreiben, dass eine selectbox ausgegeben wird?

PHP-Code:
<?php if(is_array($this->options) && count($this->options)>0): ?> <fieldset id="ctrl_<?php echo $this->urlparam; ?>" class="checkbox_container">
<?php
$count = 0;
foreach($this->options as $option): $class = ($count == 0) ? 'first ' : ''; $class .= ($count == count($this->options) - 1 ) ? 'last ' : ''; $class .= ($count % 2 == 1) ? 'even' : 'odd'; $class .= (strlen($option['class'])) ? ' ' . $option['class'] : ''; ?>
<?php
$field = sprintf('<input type="checkbox" name="%s[]" id="opt_%s_%s" class="checkbox%s" value="%s"%s />', $this->urlparam, $this->urlparam, $count, $this->submit ? ' submitonchange' : '', $option['key'],
($option['active'] ? ' checked="checked"':'')
); $label = sprintf('<label id="lbl_%s_%s" for="opt_%s_%s">%s%s</label>', $this->urlparam, $count, $this->urlparam, $count, $option['value'],
(($this->showCount) ? ' <span class="count">('. $this->count[$option['key']] .')</span>' : '')
); $count++; ?> <span class="<?php echo $class; ?>"><?php echo $field; ?> <?php echo $label; ?></span>
<?php endforeach; ?> </fieldset>
<?php endif; ?>

Ja, kann man.
 
Ich habe es jetzt schon etwas umgeschrieben, allerdings wenn ich bei der selectbox einen wert anklicke, lädt die seite neu, aber es wird kein url parameter übergeben.

<?php if(is_array($this->options) && count($this->options)>0): ?> <fieldset id="ctrl_<?php echo $this->urlparam; ?>" class="checkbox_container">
<select>
<?php
$count = 0;
foreach($this->options as $option): $class = ($count == 0) ? 'first ' : ''; $class .= ($count == count($this->options) - 1 ) ? 'last ' : ''; $class .= ($count % 2 == 1) ? 'even' : 'odd'; $class .= (strlen($option['class'])) ? ' ' . $option['class'] : ''; ?>
<?php
$field = sprintf('<option name="%s[]" id="opt_%s_%s" class="checkbox%s" value="%s"%s />', $this->urlparam, $this->urlparam, $count, $this->submit ? ' submitonchange' : '', $option['key'],
($option['active'] ? ' checked="checked"':'')
); $label = sprintf('<label id="lbl_%s_%s" for="opt_%s_%s">%s%s</label>', $this->urlparam, $count, $this->urlparam, $count, $option['value'],
(($this->showCount) ? ' <span class="count">('. $this->count[$option['key']] .')</span>' : '')
); $count++; ?> <span class="<?php echo $class; ?>"><?php echo $field; ?> <?php echo $label; ?></span>
<?php endforeach; ?> </select>
</fieldset>
<?php endif; ?>
 
Zuletzt bearbeitet:
Könntest du bitte mal die Formatierungsmöglichkeiten des Forums nutzen, damit der Quellcode nicht so dahin gerotzt aussieht?

Dein Select hat auch keinen Namen, damit kommt dann im Folgescript auch nix an.
 
Ich ahbe das icon für code gesucht, kann ja kein mensch ahnen das das unter einem text symbol zusammengefasst wurde.

Hier mein neuer code:
PHP:
<?php if(is_array($this->options) && count($this->options)>0): ?>
<select id="ctrl_<?php echo $this->urlparam; ?>" class="select" name="<?php echo $this->urlparam; ?>">

<?php
$count = 0;
foreach($this->options as $option):
   $class = ($count == 0) ? 'first ' : '';
   $class .= ($count == count($this->options) + 1 ) ? 'last ' : '';
   $class .= ($count % 2 == 1) ? 'even' : 'odd';
   $class .= (strlen($option['class'])) ? ' ' . $option['class'] : '';
?>

<?php
   $field = sprintf('<option  value="%s"%s />',
     $option['key'],
     ($option['active'] ? ' selected=""':'')
   );
   $label = sprintf('<label id="lbl_%s_%s" for="opt_%s_%s">%s%s</label>',
     $this->urlparam,
     $count,
     $this->urlparam,
     $count,
     $option['value'],
     (($this->showCount) ? ' <span class="count">('. $this->count[$option['key']] .')</span>' : '')
   );
   $count++;
?>
<?php echo $field; ?><?php echo $label; ?>
<?php endforeach; ?>
</select>

<?php endif; ?>

Wenn ich eine option auswähle, wird die seite mit dieser option neugeladen, allerdings wird der selectierte wert manchmal angezeigt und manchmal nicht, woran liegt das?
 
Zuletzt bearbeitet:
Zurück
Oben