需要帮助才能显示动态表格

时间:2010-03-28 20:42:24

标签: php mysql

我正在为公司设计一个工作rota规划器,需要帮助显示包含工作人员详细信息的动态表。我在MySQL数据库中有以下表:Staff,Event和Job。员工表保存员工详细信息(人员,姓名,地址等),事件表(黄昏,eventName,Fromdate,Todate等)和工作表持有(Jobid,Jobdate,Eventid(fk),Staffid (FK))。 当用户从PHP表单中选择EVENT和DATE(3个下拉列表:日期,月份和年份)时,我需要从staff表中动态显示可用的人员列表。 我需要通过检查Job表中的Jobdate来显示尚未在所选日期分配工作的工作人员。 我整天都在这里,无法绕过它。我仍然在学习PHP,并且肯定会感谢我能得到的任何帮助。 我的当前代码在选择事件时显示所有工作人员:

 if(isset($_POST['submit'])) 
 { 
$eventId = $_POST['eventradio'];

 }
 $timePeriod = $_POST['timeperiod'];
 $Day = $_POST['day'];
 $Month = $_POST['month'];      
 $Year = $_POST['year'];
 $dateValue = $Year."-".$Month."-".$Day;
 $selectedDate = date("Y-m-d", strtotime($dateValue));

//construct the available staff list
if ($selectedDate)
    {
        $staffsql = "SELECT s.StaffId, s.LastName, s.FirstName
        FROM Staff s 
        WHERE s.StaffId NOT IN
        (SELECT J.StaffId
        FROM Job J
        WHERE J.JobDate = ".$selectedDate.")";
        $staffResult = mysql_query($staffsql) or die (mysql_error());

    }
if ($staffResult){
    echo "<p><table cellspacing='1' cellpadding='3'>";
    echo "<th colspan=6>List of Available Staff</th>";
    echo "</tr><tr><th> Select</th><th>Id</th><th></th><th>Last Name
        </th><th></th><th>First Name </th></tr>";

    while ($staffarray = mysql_fetch_array($staffResult))
    {
        echo "<tr onMouseOver= this.bgColor = 'red' onMouseOut =this.bgColor = 'white' bgcolor= 
            '#FFFFFF'> <td align=center><input type='checkbox' name='selectbox[]'
            id='selectbox[]' value=".$staffarray['StaffId'].">
            </td><td align=left>".$staffarray['StaffId']."
            </td><td>&nbsp&nbsp</td><td align=center>".$staffarray['LastName']."
            </td><td>&nbsp&nbsp</td><td align=center>".$staffarray['FirstName']."
            </td></tr>";
    }
        echo "</table>";
    }
    else {
        echo "<br> The Staff list can not be displayed!";
    }       
    echo "</td></tr>";
    echo "<tr><td></td>";
    echo "<td align=center><input type='submit' name='Submit' value='Assign Staff'>&nbsp&nbsp";
    echo "<input type='reset' value='Start Over'>";
    echo "</td></tr>";
    echo "</table>";

1 个答案:

答案 0 :(得分:0)

你需要做两件事之一。

a。)在您的选择列表中添加一个onchange事件,并对服务器进行AJAX调用以撤回表数据,或者

b。)在您的选择列表中添加一个onchange事件,并将表单/页面提交给自己(因此包括从选择列表中选择的值

在您的PHP(无论哪种方式)中,使用请求中的参数(如果存在)加载适用的数据。