我有从MySQL表中提取的PHP函数构建的下拉菜单。下拉工作正常,但所选的选项不是POST。我怀疑问题在于如何在PHP中创建HTML选择标记,但我似乎无法找到纠正它的方法。我已经四处寻找,但似乎没有任何效果。
以下是构建下拉列表的PHP函数:
function contact_list(){
//Connection info
$dbhost = 'localhost';
$db = 'database';
$dbuser = 'user';
$dbpass = 'password';
//Define connection
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $db);
//Check connection
if (mysqli_connect_errno()) {
echo " ERROR " . mysqli_connect_error() . " ERROR ";
}
//Define search strings for drop down
$contact_list = "SELECT * FROM CONTACT_LIST";
//Execute search of primary_contact table
if (!mysqli_query($con,$contact_list)) {
die('' . mysqli_error($con));
}
//Return primary_contact results as string
$contact_result = $con->query($contact_list);
//Build drop down
echo "<select name='Primary_Contact'>";
//Loop through results
foreach ($contact_result as $row)
{
echo "<option value='' >" .htmlspecialchars($row['Primary_Contact']). "</option>";
}
echo "</select><p></p>";
}
以下是HTML的示例。说明文本框很好,所以我不认为问题出在表单标签上。
<form action="mod_output_test.php" method="POST">
<u>Description</u>: <p></p>
<input type="text" name="Description" size="48" value="<?=$Description;?>"> <p></p>
<!-- Primary Contact -->
<?php echo "<u>Primary Contact</u>:<p></p>Current value: <b> " . $Primary_Contact . "</b>  New value: ";?>
<?php contact_list() ?>
<p></p>
<input type="submit">
</form>
答案 0 :(得分:1)
更改
echo "<option value='' >" .htmlspecialchars($row['Primary_Contact']). "</option>";
到
echo "<option value='".$row['Id']."'>" .htmlspecialchars($row['Primary_Contact']). "</option>";
我猜你的投影是在表格标签之间。
在操作文件的顶部输入此内容并告诉我们您的内容
<?php
print_r($_REQUEST);
exit;
?>
答案 1 :(得分:0)
echo "<option value='' >" .htmlspecialchars($row['Primary_Contact']). "</option>";
当您发布时,选项值为空。添加联系人的ID。
正如他们所说,我们看不到<form>
标签,我们“假设”您在该标签之前添加它。但“未发布”的答案是因为<option>
的值为空。