【问题标题】:Getting a id back from a datalist option form using php post.使用 php post 从 datalist 选项表单中获取 id。
【发布时间】:2015-09-24 18:43:40
【问题描述】:

我正在尝试将 html 5 中的 datalist 功能与 php 结合使用。到目前为止,它运行良好,但我遇到了一个小问题。

我希望我的 $_POST['select'] 将我的选项 ID 而不是我的值(姓氏)返回给我,因为可能会有更多相同的姓氏。

任何正确方向的提示/提示将不胜感激。

我的“表格”:

    <form action="index.php?action=listcustomer" method="post" >
      <div class="ui action input">
        <input type="text" name="select" placeholder="Zoek op achternaam"  autocomplete="on" list="datalistcustomer">
         <datalist id="datalistcustomer"> ';
          $sql = databaseConnect()->prepare("SELECT customerID, customerFirstName, customerLastName FROM customers ORDER BY customerLastName ASC");
          $sql->execute();
          $result = $sql->fetchAll(PDO::FETCH_ASSOC);
          foreach ($result as $key => $value) {
            echo '<option id=' .$value['customerID'] .' value=' .$value['customerLastName'] .' label='.$value['customerFirstName'] .' >    </option>';
          }
echo'       </datalist>
          <button type="submit" class="ui blue labeled icon button"> <i    class="user icon"></i> Gaan </button>
      </div>
  </form>

我的收款人:

var_dump($_POST['select']);

它在我的浏览器中的外观: http://i.stack.imgur.com/YUCAf.png 它是荷兰语,所以你可能不会理解。较大的部分是姓氏字段(值),较小的字母是名字(标签)。

【问题讨论】:

    标签: php


    【解决方案1】:

    将您的选项标签更新为如下所示:

    foreach ($result as $key => $value) {
        echo '<option id="' .$value['customerID'] . '" value="' .$value['customerID'] . '"' .
             ' label="'.$value['customerFirstName'] .'" >' . $value['customerLastName'] . '</option>';
    }
    

    还可以考虑在返回到浏览器的动态内容周围使用 htmlentities(),因为您不能确定它不包含干扰 html 的字符。例如:

    htmlentities($value['customerLastName'])
    

    【讨论】:

    • 忘记这一点 - 完全跳过了“数据列表”部分,而是将代码读取为“选择”。我会考虑在提交时使用 Javascript 将值替换为 customerID。
    • 你有什么好的网站/教程可以解释这个吗?我没有 Javascript 经验。
    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多