选择之间的属性

问题描述 投票:1回答:2

我正在寻找一些指导,我努力工作。我有一个带有以下选项的关联数组:

$options_format [] = [
    'name' => 'Audio',
    'type' => 'Audio',
];

$options_format [] = [
    'name' => 'EBook',
    'type' => 'EBook',
];

$options_format [] = [
    'name' => 'Hardcover',
    'type' => 'Hardcover',
];

$options_format [] = [
    'name' => 'Paperback',
    'type' => 'Paperback',
];

每个循环的以下内容然后遍历数组以输出html:

<?php 
    $select = 'selected';
    foreach ($options_format as $key => $value) {
        echo '<option value="' . $value['name'] . '"' . (isset($format) && $format == $value['name']) {  "$select"  };
        echo ">" . $value['name'];
        echo '</option>' . "\n";
    }
?>

$format变量保存选定的值,然后检查是否设置了$format变量。但我要做的是,如果表单条目有验证错误,它将保留用户之前选择的值。

有什么想法吗?

php arrays associative
2个回答
2
投票
$select = 'selected';
foreach ($options_format as $key => $value) {
    echo '<option value="' . $value['name'] . '"' . ((isset($format) && $format == $value['name']) ? "$select" : "")  ;
    echo ">" . $value['name'];
    echo '</option>' . "\n";
}

你编写三元运算符的方式:

((isset($format) && $format == $value['name']) ? "$select" : "")

假设$format持有你的$_POST['select_field_name']的价值。


0
投票

试试这个,您可以使用所需的值更改$ format。

<?php

$options_format [] = [
    'name' => 'Audio',
    'type' => 'Audio',
];

$options_format [] = [
    'name' => 'EBook',
    'type' => 'EBook',
];

$options_format [] = [
    'name' => 'Hardcover',
    'type' => 'Hardcover',
];

$options_format [] = [
    'name' => 'Paperback',
    'type' => 'Paperback',
];
$format = "Hardcover";
 $select = 'selected';
echo "<select>";

    foreach ($options_format as $key => $value) {
        echo "<option value='".$value['name'] ."' ";
        if($value['name']==$format) 
           echo $select. ">";

        else
            echo ">";

       echo $value['name'] .'</option>' . "\n";
    }
echo "</select>";

?>
© www.soinside.com 2019 - 2024. All rights reserved.