gpt4 book ai didi

php - 从逗号分隔列表中添加或删除项目

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:39 25 4
gpt4 key购买 nike

我在从逗号分隔列表中添加和/或删除项目时遇到了一些问题。我正在使用 <select>表单字段以选择要添加和/或删除的项目。

<select name="choices[]" multiple>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
<option value="6">Option 6</option>
</select>

// explode list from database (choices column)
$array = explode(',', $row->choices);

// loop through html select options
foreach(Input::get('choices') as $value)
{
// add selected items
if($value && !in_array($value, $array))
{
$array[] = $value;
}

// remove deselected items
if(!$value && in_array($value, $array))
{
$index = array_search($value, $array);
unset($array[$index]);
}
}

// re-delimit list; update database
$row->choices = trim(implode(',', $array), ',');

将项目添加到列表的功能按预期工作。但是,当取消选择项目时,它不会将它们从列表中删除。

有什么想法吗?

最佳答案

当您遍历 Input::get('choices') 时,该数组只会为您提供用户选择的项目(如果您将其打印出来,您就会看到)。 Input::get 不知道您的 HTML 中有哪些可能的值;它只知道通过 HTTP GET 提交了哪些值。

因此,您对 !$value 的检查没有任何作用——根本不会处理未选择的值。如果未选择的值在数据库中开始,那么它们将保留在那里。

从一个空的 $array 开始不是更好吗?然后把 Input::get('choices') 的元素复制进去?然后将其存储在数据库中。

关于php - 从逗号分隔列表中添加或删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29757681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com