任何人都可以告诉我我的问题在哪里,这个页面是从我嵌入在所有条目的表格中的编辑按钮链接的。但是,当我输入新值时,它是将当前数据输入字段而不更新?任何帮助赞赏。
PHP:
<?php
include_once("config.php");
date_default_timezone_set('Europe/London');
//getting id from url
$id = $_GET['id'];
//selecting data associated with this particular id
$EditQuery = "SELECT * FROM ACW WHERE UserID=$id";
$results = sqlsrv_query ($conn, $EditQuery);
while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
$firstname = $row['FirstName'];
$lastname = $row['LastName'];
$location = $row['location'];
}
if(isset($_POST['update']))
{
$id = $_POST['UserID'];
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];
$location = $_POST['location'];
// checking empty fields
if(empty($firstname) || empty($lastname) || empty($location)) {
if(empty($firstname)) {
echo "<font color='red'>First Name field is empty.</font><br/>";
}
if(empty($lastname)) {
echo "<font color='red'>Last Name field is empty.</font><br/>";
}
if(empty($location)) {
echo "<font color='red'>Location field is empty.</font><br/>";
}
//link to the previous page
echo "<br/><a href='javascript:self.history.back();'>Go Back</a>";
}
if (preg_match("/^[0-9-]+$/",$firstname || $lastname || $location)) {
echo "<font color='red'>Numbers are not valid in these fields</font><br/>";
}
} else {
//updating the table
$UpdateQuery ="UPDATE ACW SET FirstName='$firstname', LastName='$lastname', location='$location' WHERE UserID='$id'";
echo $UpdateQuery;
//echo "<font color='green'>Data has been updated.</font><br/>";
$results = sqlsrv_query ($conn, $UpdateQuery);
}
?>
形式:
<form name="form1" method="get" action="edit.php">
<table border="0">
<tr>
<td>First Name</td>
<td><input type="text" name="firstname" value="<?php echo $firstname;?>"></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="lastname" value="<?php echo $lastname;?>"></td>
</tr>
<tr>
<td>Location</td>
<td><input type="text" name="location" value="<?php echo $location;?>"></td>
</tr>
<tr>
<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td>
<td><input type="submit" name="update" value="Update"></td>
</tr>
</table>
</form>
答案 0 :(得分:0)
我建议你进行3次更改:
1.0给表单输入不同的变量名称到从数据库收集的变量名称(例如,而不是$ firstname,但是说$ firstname_form)
2.0您的表单有GET方法,但您使用POST进行更新
3.0您的表单操作页面是edit.php,但您通过GET收集项目ID的事实意味着您的编辑按钮必须链接到某个edit.php?id = $ item_id因此应该编辑操作页面.PHP?ID = $ ID
c / o你的评论:是的。正是我想象的。所以,对于你的表单操作,用edit.php替换edit.php?id =&lt;?php if(isset($ id)){echo $ id;你在说,如果此页面上存在id,则将其显示为参数。答案 1 :(得分:0)
我没有要求更改您的链接按钮。它是正确的。为了证明它是正确的,请在编辑页面上回复id,如下所示
如果(isset($ _ GET [ 'ID'])){
$ id = $ _GET ['id'];
echo $ id;
出口();
}
然后,您可以在确认ID已传递到编辑页面后注释或删除回显和退出行。
现在,在你的表格上,我说这个动作应该是这样的 &lt; form action =“edit.php?id =&lt;?php if(isset($ id)){echo $ id;}?&gt;” method =“GET”name =“form1”&gt;
&LT; /形式&GT;
按照我之前的建议调整变量名称,并将输入验证从POST更改为GET。您的数据库现在应该更新。