【发布时间】:2021-01-23 18:03:36
【问题描述】:
我在 phpmyadmin 中有我的数据库,并且我有一个表“员工”。其中一个字段是“pay_item”,而这个特定字段的类型是“varchar(100)”。
我想在我的 php 网站中有一个下拉菜单,我希望它有两个不同的选项:“每小时”和“工资”。
我已经让它从数据库中检索值,所以无论该员工选择了什么,它都不会出现在屏幕上,并且将在下拉列表中选择“pay_item”。
我现在遇到的问题是,当我提交表单时,它没有将选定的选项发送到数据库。假设我想从一个编辑到另一个,它不会改变。
我知道如何使用 'while' 循环编写,并从数据库中填充,但在这种情况下,我只想拥有这两个选项,而不是使用 while,因为没有特定的表pay_items'
这是我目前的代码:
<td colspan="3">
<select name="pay_item">
<?
echo" <option value=\"$pay_item\"";
if($pay_item=="Regular Hourly")
echo" selected";
echo">Regular Hourly</option>\n";
echo" <option value=\"$pay_item\"";
if($pay_item=="Regular Salary")
echo" selected";
echo">Regular Salary</option>\n";
?>
</select>
</td>
现在,我忘了提到,当它在“固定工资”时,它确实会更改为“固定小时”,但不是相反,所以我认为该结构一定有问题.
以前,我将此作为文本字段,因此人们输入“定期每小时”等,但有时他们会输入语法错误,所以我试图通过下拉菜单来避免这种情况。
我将其发送到数据库的方式是使用普通的 UPDATE 或 INSERT 查询。
$db_link->query("INSERT INTO employees (pay_item) VALUES ('$pay_item')");
$db_link->query("UPDATE employees SET pay_item='$pay_item' WHERE id = '$user_id'");
在我的数据库中,“pay_item”是 VARCHAR(100),因为我曾经将它作为文本字段,而我想要的唯一两个值是“Regular Hourly”和“Regular Salary”。所以我想创建一个下拉菜单,我可以在其中填充这两个选项。
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
"它没有将所选选项发送到 DB" .. 应该将所选选项发送到 DB 的代码在哪里?
-
这只是一个普通的 UPDATE 或 INSERT 查询..... $db_link->query("UPDATE employees SET pay_item='$pay_item' WHERE id = '$user_id'");和/或 $db_link->query("INSERT INTO employees (pay_item) VALUES ('$pay_item')");我曾经让人们在文本字段中输入“Regular Hourly”,所以效果很好,但我不希望人们输入语法错误,所以我认为下拉菜单是避免这种情况的好选择......但是改了之后就不能正常工作了……
-
使用所有相关代码更新您的问题,包括您从表单中获取信息并保存到数据库中的部分
-
这段代码容易受到sql注入的影响,请只使用带参数的准备好的语句见stackoverflow.com/questions/60174/…
-
对不起@FelippeDuarte,我是新手,我正在尝试添加我知道的尽可能多的代码,但是感谢您,我也会添加它....
标签: php html mysql select dropdown