![](/img/trans.png)
[英]How to select more option in a dropdown with array of value using php?
[英]PHP Select dropdown Option value array
我正在嘗試按行對結果進行選擇下拉過濾器,如果有任何道理!
本質上,我有一個表,表中有5行,每行具有不同的日期-每行都有一個下拉列表,其中包含可用於該日期工作的用戶列表。 我讓所有用戶正確顯示,並且將其過濾到當天無法正常工作的用戶的位置-唯一的問題是,它似乎只是為了獲得第一個結果而已。
例如
用戶A不能工作10/06/2019&11/06/2019-用戶A將不會顯示在日期為10/06/2019的行的下拉列表中,但會顯示在日期為11/06/2019的行中。
用戶B可以處理表格中的所有日期,因此將顯示在所有下拉列表中。
我試過修改我的數組和查詢,也嘗試使用計數器,但沒有成功!
if ($available_date == $stk_date) {
$query = "SELECT * FROM user_master WHERE id NOT IN (SELECT UM.id FROM user_master UM JOIN bookings B ON B.id_item = UM.id JOIN stocktakes S ON B.the_date = S.stk_date)";
$result = mysqli_query($connect, $query);
//$row = mysqli_fetch_array($result);
if ($result) {
while ($row = mysqli_fetch_array($result)){
echo "<option value=$row[first_name]>$row[first_name] $row[last_name]</option>'";
}
}
}
else {
$query = "SELECT * FROM user_master";
$result = mysqli_query($connect, $query);
//$row = mysqli_fetch_array($result);
if ($result) {
while ($row = mysqli_fetch_array($result)){
echo "<option value=$row[first_name]>$row[first_name] $row[last_name]</option>'";
}
}
}
echo "</select></td>";
*由於某種原因,我的代碼未包括我的第一個回聲,它只是select的ID名稱,即supervisor_id_1
關於我要去哪里的任何想法?
更新:
刪除了更新,因為這是另一個問題。
在您的IF和ELSE中,您都有一個
$row = mysqli_fetch_array($result);
這是從結果集中讀取第一行,但未在輸出中使用。 只需刪除這兩行,請參見下面的代碼以獲取注釋
if ($available_date == $stk_date) {
$query = "SELECT * FROM user_master
WHERE id NOT IN (
SELECT UM.id
FROM user_master UM
JOIN bookings B ON B.id_item = UM.id
JOIN stocktakes S ON B.the_date = S.stk_date)";
$result = mysqli_query($connect, $query);
// remove, its just throwing your first result away
//$row = mysqli_fetch_array($result);
if ($result) {
while ($row = mysqli_fetch_array($result)){
echo "<option value=$row[first_name]>$row[first_name] $row[last_name]</option>'";
}
}
} else {
$query = "SELECT * FROM user_master";
$result = mysqli_query($connect, $query);
// remove, its just throwing your first result away
//$row = mysqli_fetch_array($result);
if ($result) {
while ($row = mysqli_fetch_array($result)){
echo "<option value=$row[first_name]>$row[first_name] $row[last_name]</option>'";
}
}
}
echo "</select></td>";
您需要為值標簽加上引號:
value="$var"
總而言之,回顯末尾有一些引號。
您需要組合兩個字符串或連接變量,而無需組合字符串,它總是返回最后一個回聲值。 例如: $ex='A1'; $ex.='B1'; $ex.='C2';
$ex='A1'; $ex.='B1'; $ex.='C2';
Result - A1B1C2
您的問題答案是:
$string = "<td><select>";
if ($available_date == $stk_date) {
$query = "SELECT * FROM user_master WHERE id NOT IN (SELECT UM.id FROM user_master UM JOIN bookings B ON B.id_item = UM.id JOIN stocktakes S ON B.the_date = S.stk_date)";
$result = mysqli_query($connect, $query);
if ($result) {
while ($row = mysqli_fetch_array($result)){
$string.="<option value=".$row['first_name'].">".$row['first_name']." ".$row['last_name']."</option>'";
}
}
}else{
$query = "SELECT * FROM user_master";
$result = mysqli_query($connect, $query);
if ($result) {
while ($row = mysqli_fetch_array($result)){
$string.="<option value=".$row['first_name'].">".$row['first_name']." ".$row['last_name']."</option>'";
}
}
}
$string.="</select></td>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.