大家好日子。正如标题所说,我在更新数据时需要有关facebox的帮助。
这里是显示facebox按钮的代码
echo '
td>
<a rel="facebox" href="../admin/c_status.php?id='.$row["userID"].'">Edit</a>
</td>
';
这里是facebox内的代码
<?php
include("../db/dbCon.php");
//$id = $_GET['id'];
//echo $id;
?>
Status
<form method="post">
<select name="selActive" id ="selActive">
<option value="ACTIVE">ACTIVE</option>
<option value="IN-ACTIVE">IN-ACTIVE</option>
<option value="GRADUATE">GRADUATE</option>
</select>
<br>
<br>
<button class="btn btn-success btn-block btn-large" name="saveChangeButton" id ="saveChangeButton">Save Changes</button>
</form>
<?php
if(isset($_POST['saveChangeButton'])){
$id = $_GET['id'];
$status = $_POST['selActive'];
$cStatus = $conn->prepare("UPDATE useraccount SET status = :status WHERE userID = :userID");
$cStatus->bindParam(':status', $status);
$cStatus->bindParam(':userID', $id);
$cStatus->execute();
}
?>
我遇到的问题是,当我通过&#34; http://localhost/ict/admin/c_status.php&#34;等地址栏进行编辑时,点击编辑按钮不会更新数据。它会工作。
答案 0 :(得分:1)
您可以隐藏输入类型,只需使其值等于$_GET['id']
<form method="post">
<select name="selActive" id ="selActive">
<option value="ACTIVE">ACTIVE</option>
<option value="IN-ACTIVE">IN-ACTIVE</option>
<option value="GRADUATE">GRADUATE</option>
</select>
<input type="hidden" name="userid" value="<?php echo $_GET['id'];?>">
<br>
<br>
<button class="btn btn-success btn-block btn-large" name="saveChangeButton" id ="saveChangeButton">Save Changes</button>
</form>
然后转移你的PHP代码来更新你的链接下方或上方的useraccount。当你使用facebox时,你弹出的窗体成为这个文件的一部分,因此你可以将你的PHP代码转移到这里更新帐户是合乎逻辑的没有指定上面表单的action属性。
echo '<td>
<a rel="facebox" href="../admin/c_status.php?id='.$row["userID"].'">Edit</a>
</td>';
include("../db/dbCon.php");
if(isset($_POST['saveChangeButton'])){
$id = $_POST['userid'];
$status = $_POST['selActive'];
$cStatus = $conn->prepare("UPDATE useraccount SET status = :status WHERE userID = :userID");
$cStatus->bindParam(':status', $status);
$cStatus->bindParam(':userID', $id);
$cStatus->execute();
}
希望有所帮助