php - 在 PHP 中针对数组选择的表单

标签 php html mysql forms

如果目标变量是单个值,我有这段代码可以正常工作

假设 $bank_country 是一个单一的值,比如巴西,没有问题

<select class="form-control" multiple="1" name="country[]">
<option<? echo ($bank_country == 'Albania') ? ' selected="selected"' : ''; ?> value="Albania">Albania</option>
<option<? echo ($bank_country == 'Algeria') ? ' selected="selected"' : '';?> value="Algeria">Algeria</option>
<option<? echo ($bank_country == 'American Samoa') ? ' selected="selected"' : '';?> value="American Samoa">American Samoa</option>
<option<? echo ($bank_country == 'Andorra') ? ' selected="selected"' : '';?> value="Andorra">Andorra</option>
<option<? echo ($bank_country == 'Angola') ? ' selected="selected"' : '';?> value="Angola">Angola</option>

但是因为我的值是倍数,所以它可能会这样发生

Brazil*Germany*Spain

我有这段代码

if(strstr($bank_country,"*"))
{
$country_arr = explode("*",$bank_country);

foreach($country_arr as $cca)
{
//code to echo out country with select on country that match
}

}

当我的国家有多个值时,我该如何回显它,它可以让巴西用 selected="selected"回显,德国和西类牙也是如此。

我想了一会儿,不知道如何附加到我的代码中,让它在这个国家执行 Multiple if 条件,然后再用 selected="selected"回显

感谢您的帮助!!

最佳答案

你可以使用 in_array . 检查 !empty($country_arr) 数组是否存在,如果不存在,您将只有一个国家。

if (strstr($bank_country,"*")) {
    $country_arr = explode("*", $bank_country);
}

<option<? echo ((!empty($country_arr) && in_array('Albania', $country_arr)) || $bank_country == 'Albania') ? ' selected="selected"' : ''; ?> value="Albania">Albania</option>

关于php - 在 PHP 中针对数组选择的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094025/

相关文章:

javascript - 在 Phaser 框架中为 Sprite 提供叠加层

mysql - 根据列值对数据库行进行分类

php - 个人资料页面有问题

php - MySQL 使用一条插入语句插入多行时出现问题

php - 在 Laravel 中将值从 url 传递到 Controller

php - 有没有比使用装饰器更好的设计 zend_forms 的方法?

html - 整个网页的行间距

javascript - 查找 `body` 标签是否在弹出窗口中有类

mysql - 如何优化规范化数据库结构的查询?

mysql - 一个领域的不同可能性