今天內容要搭配【第11天的文章】中的【staff_edit.php (裡面含有 INPRUT做修改的那個)】
https://ithelp.ithome.com.tw/articles/10262436
因為如果某資料表有配合外部鍵,那其外部鍵值的修改,就很適合配合下拉式選單
(因為只能選外部鍵已經有的內容)。
下拉式選單的基本語法,也可參考下列網址
https://www.fooish.com/html/select-option-optgroup-tag.html
這次的重點的是 資料庫 UPDATE 的語法、下拉式選單要如何預設成會員原本的等級。
整體程式碼長這樣
<?php
/*儲存修改會員資料*/
if(isset($_POST['staff_edit_btn']))
{
$st_name = $_POST['staff_edit']; //下面 input type="text"標籤 的name值
$st_role = $_POST['S_ROLE']; //下面 下拉式選單select標籤 的name值
$st_id =$_POST['ST_ID'];
$query2="UPDATE staff
SET staff_name ='$st_name',
staff_role ='$st_role'
WHERE staff_id ='$st_id' ";
$query_run2 = mysqli_query($con,$query2);
if($query_run2)
{
//修改成功則回到上個頁面(或其他指定頁面)
$_SESSION['status'] =" 會員資料改成功!!!!!!!!!!";
header('Location: Hello.php');
}
else
{
//修改失敗則停留在此頁面
$_SESSION['status'] =" 會員資料修改失敗~~";
header('Location: staff_edit.php');
}
}
?>
<body>
<div class="container">
<?php
$ST_ID = $_GET['ST_EDIT'];
$query = "SELECT * FROM staff WHERE staff_id='$ST_ID' ";
$query_run = mysqli_query($con,$query);
?>
<?php
if(mysqli_num_rows($query_run) > 0)
{
foreach($query_run as $row)
{
?>
<form method="POST">
<div class="form-group">
<!-- 注意下面的 input type="hidden",
上面的PHP 要依據這來修改會員名稱 -->
<input type="hidden" name="ST_ID" value="<?php echo $row['staff_id'];?>">
<label>修改會員名稱:</label>
<input type="text" name="staff_edit"
value="<?php echo $row['staff_name'];?>">
</div>
<?php
//下面 $value 是要配合 下拉式選單,預設顯示(echo "selected";) 原本該會員的等級
//因為是搜尋表staff 所以外部鍵的的欄位是 staff_role (而不是STAFF_ROLE)
$value = $row['staff_role'];
}
}
else
{
echo "尚未建立任何會員等級";
}
?>
<!--下拉式選單------------------------------>
<?php
//搜尋等級列表(add_role) 中的所有會員等級
$query9 = "SELECT * FROM add_role";
$result9 = mysqli_query($con, $query9);
?>
<label>修改會員等級 : </label>
<select name="S_ROLE" >
<?php while($row9 = mysqli_fetch_array($result9)):;?>
<!--下面 $row9['(資料表(add_role) 的欄位(STAFF_ROLE) )']; ---------->
<option value="<?php echo $row9['STAFF_ROLE'];?>"
<?PHP
if($value == $row9['STAFF_ROLE']){echo "selected";}
?>
>
<?php echo $row9['STAFF_ROLE'];?>
</option>
<?php endwhile;?>
</select>
<button name="staff_edit_btn">儲存修改</button>
</form>
</div>
</body>
今天就先這樣,下次見。