我曾尝试研究这个问题,也尝试过一些修复,但最终都一团糟。我是这方面的新手,并且知道我使用的是已弃用的 PHP 版本,代码不是我的工作,但是我坚持在工作中修复此问题,因为我将通过减少错误并让其他人参与维护数据而受益。我正在更改一个 PHP/MySQL 应用程序,该应用程序曾经充满了硬编码的选择框,我创建了一个小的 html 表单来 CRUD 名为“部门”的表中的一组部门名称,现在我在整个网站上交叉引用它。 mysql'department'表有3个字段department_id、status、department_name
我遇到问题的表单更新了一个名为“staff”的表,它允许在员工表中增删改查此数据,但是在表单的页面加载时,它不会填充部门名称,它会显示一个空的选择框。 “staff”表中的相关字段是staff_company。 我可以打开一个下拉框,其中填充了所有正确的选项,如果我保持该框不变并更新表单上的其他数据,它会发布原始正确的department_id,保持数据的完整性,并在刷新页面时确实显示了正确的部门名称。如果其他人使用它,这就是一个问题,因为他们可能认为在尝试编辑时该字段是空的,并且可能做出错误的选择,这也很草率,我的想法是我没有尽早声明变量任何建议在新手演讲/初学者演讲中,我们将欣赏下面的部分代码 - 另外我需要了解我哪里出错了,这样我就可以提高我的技能(注意页面大约 1600 行,因此不会发布整个页面)。
//editing departments using department id//
$select_dept_names = "SELECT *
FROM `departments`
WHERE status = 'active'
ORDER BY department_name ASC ";
$run_select_dept = mysql_query($select_dept_names,$link);
print(" <tr><td id='employee_left'>Department:</td><td><select name=\"staff_company\">
<option value=\"".$grab_staff['staff_company']."\">".$dept_data['department_name']."</option>");
while($dept_data=mysql_fetch_array($run_select_dept))
{
print("<option value=\"".$dept_data['department_id']."\">".$dept_data['department_name']."</option>");
}print("
</select></td></tr>");
提前非常感谢 - Cheers Jase
更新了下面的代码
//line 346 queries
$select_dept_names = "SELECT * FROM departments
ORDER BY department_name ASC ";
// line 363 - storing and fetching data
$run_select_dept = mysql_query($select_dept_names,$link);
$dept_data = mysql_fetch_array($run_select_dept);
// line 1147 - editing departments using department id///////////NEEDS WORK Only showing first department then on F5 displays existing department
//var_dump($main_report[department]); die(); - outputs only one line from the 'department' table
if($main_report['department'] = $dept_data['department_id'])
{
print(" <table id='edit_table_within'>Department:</td><td> <select name=\"department\">
<option value=\"".$main_report['department']."\">".$dept_data['department_name']." </option>");
}
else print("<table id='edit_table_within'>Department:</td><td> <select name=\"department\"> <option value=\"\">Select..</option>");
while($dept_data=mysql_fetch_array($run_select_dept))
{
print("<option value=\"".$dept_data['department_id']."\">".$dept_data['department_name']." </option>");
}print("
</select></td></tr>");
最佳答案
如果我足够了解您(我可能不是),我建议添加一段代码,当您确认数据已添加或更改到数据库中时,该代码会自动刷新页面。此外,下拉框中会有一个空白框,因为您选择的是默认选项。希望我能理解你的问题
关于php - 在刷新页面之前,MySql 数据不会显示在 html 表单上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31368923/