【问题标题】:Getting data from a multiple select dropdown with PHP to insert into MySQL使用 PHP 从多选下拉列表中获取数据以插入 MySQL
【发布时间】:2012-05-10 13:23:22
【问题描述】:

我的数据库中有一个使用SET 数据类型创建的天数列表。

SET('Mon','Tue','Wed','Thr','Fri','Sat','Sun')

我希望用户能够使用多选下拉菜单选择多天放入数据库:

<select name='days' id='days' size=4 multiple>
<option name=Mon value=Mon> Mon </option>
<option name=Tue value=Tue> Tue </option>
<option name=Wed value=Wed> Wed </option>
<option name=Thr value=Thr> Thr </option>
<option name=Fri value=Fri> Fri </option>
<option name=Sat value=Sat> Sat </option>
<option name=Sun value=Sun> Sun </option>
</select>

如何从该下拉列表中获取数据以插入到我的 mysql 查询中?

现在我的查询是这样的:

$sql2 = " UPDATE tblFacilityHrsDateTimes SET `startEventDate`='{$_POST['startEventDate']}',`endEventDate`='{$_POST['endEventDate']}', `startTime`='{$_POST['startTime']}',`endTime`='{$_POST['endTime']}',`recurrence`='{$_POST['recurrence']},`finalDate`='{$_POST['finalDate']}' WHERE `id` = '$id' "; $mysqli->query($sql2) or die($mysqli->error);

当前选择框保持不变,它只抓取用户选择的日期之一。

【问题讨论】:

    标签: php mysql html


    【解决方案1】:

    首先,您的选择名称应该带有方括号:

    <select name='days[]' id='days' size=4 multiple="multiple">
    

    这样当用户选择更多值(选项)并提交表单时,您将收到他选择的值数组。

    然后你必须遍历这个数组并插入每条记录:

    foreach($_POST['days'] as $k => $v) {
        // here do the INSERT query with value $v
    }
    

    但是您在选择框下的查询告诉我们这不是故事的结局......

    【讨论】:

    • 我不明白如何遍历数组以插入 MySQL。
    • if (isset($_POST['submitted'])) { foreach($_POST AS $key => $value) { $_POST[$key] = $mysqli->real_escape_string($value );不能接受数组,所以我知道在此之前我必须做点什么。
    • @에이바 我编辑了我的代码。我不能说 INSERT 看起来如何,因为我不知道你在插入什么其他数据以及如何......
    【解决方案2】:
    foreach ($_POST['days'] AS $key => $value) {
      // INSERT ... where $value is one of the values
    }
    

    【讨论】:

    • 我可以内爆 $_POST['days'] 然后像 if (isset($_POST['submitted'])) { foreach($_POST AS $key => $value) { $ _POST[$key] = $mysqli->real_escape_string($value); } ?
    猜你喜欢
    • 1970-01-01
    • 2014-08-03
    • 2017-12-02
    • 2018-01-08
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多