如何获取所选数据列表的ID

时间:2016-05-28 01:40:26

标签: php html mysql

我刚刚想出如何从mysql填充datalist元素。我需要获取与所选值相对应的关联ID以提交到另一个页面。我可以提交值,但我需要ID。我希望这是一个简单的语法错误,但我无法弄明白。 谢谢你。

<?php

require 'connect_mysqli.php';

$sql = "SELECT street FROM streets";
$result = mysqli_query($con, $sql) or die ("Error " . mysqli_error($con));
?>
<form action="new.php" name="test" method = "post">
<datalist id="street" name="streets">
    <?php while($row = mysqli_fetch_array($result)) { ?>
        <option value="<?php echo $row['street']; ?>"><?php echo $row['street_id']; ?></option>
    <?php 
    } 
?>

</datalist>
<input type="text" name="street" id="test" autocomplete="off" list="street">
<input type="submit" value="Submit">
<?php 
mysqli_close($con); 
?>

3 个答案:

答案 0 :(得分:2)

查看您的查询:

$sql = "SELECT street FROM streets";
  

&#34;我希望这是一个简单的语法错误&#34;

您没有制作语法&#34;错误&#34;,您只是没有在查询中选择street_id列,这就是为什么它&#39;关于$row['street_id']

中没有显示在下拉列表中

您需要在查询中添加它:

$sql = "SELECT street, street_id FROM streets";

N.B。:列选择以逗号分隔。如果您愿意,可以进一步添加到查询中,但请确保在选择的最后一列之后没有尾随逗号。

即:这将失败:

$sql = "SELECT street, street_id, col3, FROM streets";

然而,$row['street_id']$row['street_ID']在这里完全是两种不同的动物。因此,请确保使用的是字母大小写。它们在循环遍历列名时是区分大小写的,并且在检查它们时会触发错误,这是一个不存在的列的效果。

旁注:

我在您发布的代码中没有看到结束</form>标记。确保它是您真实代码的一部分。

参考:

答案 1 :(得分:1)

另外我认为提交街道的价值你做错了。将其更改为此

  <option value="<?php echo $row['street_id']; ?>"><?php echo $row['street']; ?></option>

它会显示街道名称并提交街道ID并获得这样的价值

$_post["streets"];// I haven't used datalist but if works it would be this

答案 2 :(得分:1)

您只是忘记在街道表中选择的列中添加street_id列。

更改此行:

$sql = "SELECT street FROM streets";

到这一行:

$sql = "SELECT street, street_id FROM streets";