我正在尝试在html 5中结合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>
My receiving end:
var_dump($_POST['select']);
它在我的浏览器中的样子:https://i.stack.imgur.com/YUCAf.png这是荷兰语,所以你可能听不懂。较大的部分是LastName字段(值),较小的字母是First Name(标签)。
更新你的选项标签,让它看起来像这样:
foreach ($result as $key => $value) {
echo '<option id="' .$value['customerID'] . '" value="' .$value['customerID'] . '"' .
' label="'.$value['customerFirstName'] .'" >' . $value['customerLastName'] . '</option>';
}
还可以考虑在返回给浏览器的动态内容周围使用htmlentities(),因为您无法确保它不包含干扰html的字符。例句:
htmlentities($value['customerLastName'])