【问题标题】:Select multiple items from dropdown and send to database从下拉列表中选择多个项目并发送到数据库
【发布时间】:2015-10-25 15:58:41
【问题描述】:

我有一个包含此字段的表单。从具有 2 列的技能表调用 - Skill_id(int) 和 Skill(varchar)。我希望用户为他们拥有的技能选择多个选项并将其添加到他们的信息中,但只有一个选项正在经历。

print ("<tr><td valign=top>Skill: </td><td><select name=uskill_id[0] size=3 multiple=multiple>");


  global $wpdb;
  $trade = $wpdb->get_results("select skill, skill_id from wp_skill", ARRAY_A);
  foreach($trade as $row) {
      $skill = $row['skill'];
      $skill_id  = $row['skill_id'];
      print '<option value="'.$skill_id.'">'.$skill.'</option>';
}

这是将信息发送到数据库的插入语句。我已经从int类型变成了varchar类型的skill_id,但仍然没有运气。

global $wpdb; $success=$wpdb->insert('trades', array('skill_id' => explode(', ', $_POST['uskill_id[0]'])));

【问题讨论】:

  • 使用复选框来选择多个选项,而不是下拉菜单。或检查$_POST['uskill_id[0]']的值
  • 问题是将具有多个值的数组作为字符串或整数发送到列。
  • 我也收到此警告 - 警告:mysqli_real_escape_string() 期望参数 2 为字符串,数组在第 1092 行的 \wp-includes\wp-db.php 中给出

标签: php sql database wordpress forms


【解决方案1】:
<"?php          if($_POST){
                $uskill_id              =   implode(", ",$_POST['uskill_id']);

                echo $uskill_id;//to data base          } ?>

使用这个表格

            <label for="uskill_id" >Skils </label><br/>

            <select name="uskill_id[]"   id="uskill_id" multiple="multiple" data-placeholder="Click to select..." >
           <option value="1">English Writing </option>
            <option value="2">Blog Writing </option>
             <option value="3">Article  Writing </option>
              <option value="4">Book Writing </option>

           </select>


       <input type="submit" value="Submit" />

         `

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多