【发布时间】:2017-03-01 14:14:44
【问题描述】:
我正在尽最大努力使用 php 和 html 从我的访问数据库中填充下拉列表。
我的 DATA.mdb 中有一个名为 CONTACTS 的表,它包含 4 列和一些行,如下所示:
Id 人员 电话 电子邮件
10 个人 1 112 mail1
10 Pers2 113 mail2
10 Pers3 114 mail3
20 Pers4 211 mail4
20 个人5 311 邮件5
当我在 input="text" 中输入 10 时,我得到一个如下所示的回声: Pers1Pers2Pers3
当我输入 20 时,我得到 Pers4Pers5
这就是我用 PHP 做的事情:
<?php
if (isset($_POST['n01_text']))
{
ob_start();
$stxt = rtrim($_POST['n01_text']);
$keys = preg_split("/[\s,]+/", $stxt);
//- Open DATA
$db = odbc_connect('DATA','','') or die(odbc_errormsg());
//- Read CONTACTS
$sql = "SELECT ID, Person, Phone, Email FROM CONTACTS WHERE ID= '" . $ID. "'";
$rs = odbc_exec($db,$sql) or die(odbc_errormsg());
while (odbc_fetch_row($rs)) {
$Person= odbc_result($rs,"Person");
$Phone= odbc_result($rs,"Phone");
$Email = odbc_result($rs,"Email ");
echo $Person;
}
odbc_close($db);
ob_end_flush();
}
?>
这里是 HTML:
<input type="text"name="n01_text" placeholder="ID" class="findtext" id="contact"> <span id="myspan" class="input-group-addon">Search</span>
<select>
<option value=0><?php echo $Person; ?></option>
<!-- Populate from Access-->
</select>
从这段代码中,我只获得了从数据库到我的下拉列表的最后一个条目,即 ID 10 的 Pers3 和 ID 20 的 Pers5。
我真的不知道如何解决这个问题。
我正在努力学习,我相信我的代码可以通过很多方式改进,我感谢各种更正,但请耐心等待!
【问题讨论】:
-
您的数据库代码只回显该人的姓名。它不会回显将这些名称转换为
<option>所需的任何html 以用于<select>。你需要展示这两个代码块是如何实际连接在一起的。 -
为什么需要输出缓冲区?
标签: php html odbc dropdown populate