Php 用两个变量填充动态下拉列表
我设置了两个变量来填充动态下拉列表。变量是每个数组,并针对每个数组运行Php 用两个变量填充动态下拉列表,php,Php,我设置了两个变量来填充动态下拉列表。变量是每个数组,并针对每个数组运行。 第一个变量查询数据库,找出当前分配给哪个员工,然后显示该名称。此名称显示在下拉列表的第一个位置 第二个变量查询db,查看可以分配哪些其他工作人员。这些结果将显示在当前分配的工作人员下方 我遇到的问题是如何让它正确地显示在动态下拉列表中。现在,结果显示在第一个变量位于第二个变量的每个列表前面的位置 期望的结果 我怎样才能让它正确地显示出来?这些名称不应相互关联。此外,变量1位于每个名称“brett Smith”的前面,不应
。
第一个变量查询数据库,找出当前分配给哪个员工,然后显示该名称。此名称显示在下拉列表的第一个位置
第二个变量查询db,查看可以分配哪些其他工作人员。这些结果将显示在当前分配的工作人员下方
我遇到的问题是如何让它正确地显示在动态下拉列表中。现在,结果显示在第一个变量位于第二个变量的每个列表前面的位置
期望的结果
我怎样才能让它正确地显示出来?这些名称不应相互关联。此外,变量1位于每个名称“brett Smith”的前面,不应该是。它应显示为:
布雷特·史密斯
斯泰西试验
马特·莫卡比
PHP
$id=$xxxx_t->_id;
$Current_Staffing = $wpdb->get_results("SELECT First_Name, Last_Name FROM Staff_Table, Staff_List ORDER BY TimeStamp DESC LIMIT 1");
$On_Duty = $wpdb->get_results("SELECT Staff_Id, First_Name, Last_Name FROM Staff
foreach($On_Duty as $person){
$f_name_option = $person->First_Name;
$lname_option = $person->Last_Name;
$staff_id = $person->Staff_id;
echo("<option value='$staff_id, $id'")
foreach($Current_Staffing as $staff){
$staff->First_Name;
$staff->Last_Name;
} echo(">$staff->First_Name $staff->Last_Name<br><br>$f_name_option $l_name_option</option>");
}
echo(“>$staff->First_Name$staff->Last_Name
$f_Name_option$l_Name_option”)
上述编辑不会显示可分配员工的可用选项。这是一个截图-
编辑2-
通过这段代码,我得到以下输出。它显示的是谁被选中,但在列表中加倍:
$id=$xxxx\u t->\u id;
$On_Duty=$wpdb->get_results(“从Staff中选择Staff_Id、First_Name、Last_Name
foreach($人值勤){
$f_name_option=$person->First_name;
$lname\u选项=$person->Last\u Name;
$staff\u id=$person->staff\u id;
echo($person->First_Name$person->Last_Name);
}
$Current_Staffing=$wpdb->get_results(“从Staff_表中选择First_Name、Last_Name,按时间戳DESC LIMIT 1排序的Staff_列表”);
foreach($staff为当前的_人员配置){
$staff\u id=$staff->staff\u id;
echo($staff->First_Name$staff->Last_Name”);
}
您希望将选项
标记放在forEach
循环中,以便于HTML插入和可读性。您还希望“取消嵌套”“您的for
循环因为您不处理嵌套数据,所以您拥有的数据彼此互斥。由于您希望$Current\u
优先,我建议先使用该循环
由于您希望确保当前正在工作的人员不会被列出两次(因为他们将属于所有员工),我们可以使用if
语句确保跳过他们
我还冒昧地为您清理了一些代码:
//Global Variables
$currentEmployee = ""; //Assuming you only have one current employee, you will need to change your code if you have more than one
$id=$xxxx_t->_id;
$Current_Staffing = $wpdb->get_results("SELECT First_Name, Last_Name FROM Staff_Table, Staff_List ORDER BY TimeStamp DESC LIMIT 1");
foreach($Current_Staffing as $staff){
$firstName = $staff->First_Name;
$lastName = $staff->Last_Name;
$staff_id = $staff->Staff_id;
$currentEmployee = $firstName . " " . $lastName;
echo("<option value='$staff_id, $id'>$firstName $lastName</option>");
}
$On_Duty = $wpdb->get_results("SELECT Staff_Id, First_Name, Last_Name FROM Staff
foreach($On_Duty as $person){
$f_name_option = $person->Staff_First_Name;
$firstName = $person->First_Name;
$lastName = $person->Last_Name;
$staff_id = $person->Staff_id;
//If the person we are looking at is not the current employee then we can add them, else skip
if ($firstName . " " . $lastName != $currentEmployee) {
echo("<option value='$staff_id, $id'>$firstName $lastName</option>");
}
}
//全局变量
$currentEmployee=”“;//假设您只有一名当前员工,如果您有多名员工,则需要更改代码
$id=$xxxx\u t->\u id;
$Current_Staffing=$wpdb->get_results(“从Staff_表中选择First_Name、Last_Name,按时间戳DESC LIMIT 1排序的Staff_列表”);
foreach($staff为当前的_人员配置){
$firstName=$staff->firstName;
$lastName=$staff->Last_Name;
$staff\u id=$staff->staff\u id;
$currentEmployee=$firstName.“$lastName;
echo($firstName$lastName”);
}
$On_Duty=$wpdb->get_results(“从Staff中选择Staff_Id、First_Name、Last_Name
foreach($人值勤){
$f_name_option=$person->Staff_First_name;
$firstName=$person->firstName;
$lastName=$person->Last_Name;
$staff\u id=$person->staff\u id;
//如果我们正在查看的人不是当前员工,那么我们可以添加他们,否则跳过
如果($firstName.““$lastName!=$currentEmployee){
echo($firstName$lastName”);
}
}
如果您从上一个echo语句中删除$staff->First\u Name$staff->Last\u Name
,会发生什么情况?这不会阻止我看到$Current\u Staffing
的输出,但您的
标记似乎有两个名称正在打印,删除第一个名称将从打印中删除相同的名称,因为这会导致不在你的forEach循环范围内,明白了。试过之后,我就知道了谁是当前分配的。我确实得到了其他人的名单。因此,也许问题是如何更好地显示当前分配的员工以及所有其他可能的员工?你需要非常清楚地说明你在寻找什么。试过这个,但结果相同它们之间没有空格就是你想要的吗?名称显示不正确。它们不应该相邻。如果有效,请告诉我!
$id=$xxxx_t->_id;
$On_Duty = $wpdb->get_results("SELECT Staff_Id, First_Name, Last_Name FROM Staff
foreach($On_Duty as $person){
$f_name_option = $person->First_Name;
$lname_option = $person->Last_Name;
$staff_id = $person->Staff_id;
echo("<option value='$staff_id, $id'>$person->First_Name $person->Last_Name</option>");
}
$Current_Staffing = $wpdb->get_results("SELECT First_Name, Last_Name FROM Staff_Table, Staff_List ORDER BY TimeStamp DESC LIMIT 1");
foreach($Current_Staffing as $staff){
$staff_id = $staff->Staff_id;
echo("<option value='$staff_id, $id'>$staff->First_Name $staff->Last_Name</option>");
}
//Global Variables
$currentEmployee = ""; //Assuming you only have one current employee, you will need to change your code if you have more than one
$id=$xxxx_t->_id;
$Current_Staffing = $wpdb->get_results("SELECT First_Name, Last_Name FROM Staff_Table, Staff_List ORDER BY TimeStamp DESC LIMIT 1");
foreach($Current_Staffing as $staff){
$firstName = $staff->First_Name;
$lastName = $staff->Last_Name;
$staff_id = $staff->Staff_id;
$currentEmployee = $firstName . " " . $lastName;
echo("<option value='$staff_id, $id'>$firstName $lastName</option>");
}
$On_Duty = $wpdb->get_results("SELECT Staff_Id, First_Name, Last_Name FROM Staff
foreach($On_Duty as $person){
$f_name_option = $person->Staff_First_Name;
$firstName = $person->First_Name;
$lastName = $person->Last_Name;
$staff_id = $person->Staff_id;
//If the person we are looking at is not the current employee then we can add them, else skip
if ($firstName . " " . $lastName != $currentEmployee) {
echo("<option value='$staff_id, $id'>$firstName $lastName</option>");
}
}