php - 在刷新页面之前,MySql 数据不会显示在 html 表单上

标签 php html mysql

我曾尝试研究这个问题,也尝试过一些修复,但最终都一团糟。我是这方面的新手,并且知道我使用的是已弃用的 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/

相关文章:

php - PHP和函数错误

php - Laravel 5 路由组和组内的 Basic(/) GET 路由

javascript - [PHP][MySQL] 记录 60 秒后删除表

html - 从样式表和 html 自定义背景

mysql - MySql 的排名结果

php - Codeigniter 获取复杂查询的行数

php - mysql_fetch_array ,日期分隔

javascript - 如何在 PHP 服务器端处理具有多个文件的 JavaScript 表单数据?

javascript - 将文本插入不同页面上的文本区域

javascript - Angular JS 自定义指令不能用作元素标记