我正在尽力使用php和html从我的访问数据库填充下拉列表。
我的DATA.mdb中有一个表,我已将其命名为CONTACTS,它包含4列和一些行,如下所示:
ID人电话邮箱
10个Pers1 112 MAIL1
10个Pers2 113 mail2
10个Pers3 114 mail3
20个Pers4 211 mail4
20个Pers5 311 mail5
当我输入10输入=“text”时,我得到一个如下所示的回声: 的 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 。
我真的不知道如何解决这个问题。
我正在努力学习,我确信我的代码有很多方法可以改进,我很欣赏各种修正,但请耐心等待我!
答案 0 :(得分:1)
这样做:
$Person .= "<option value=$i>".odbc_result($rs,"Person")."</option>";
$i++;
然后将HTML更新为:
<input type="text"name="n01_text" placeholder="ID" class="findtext" id="contact"> <span id="myspan" class="input-group-addon">Search</span>
<select>
<?php echo $Person; ?>
<!-- Populate from Access-->
</select>