Php 从“编辑”按钮更新表条目
有人能告诉我我的问题在哪里吗?这个页面是通过我嵌入在所有条目表中的编辑按钮链接的。但是,它正在将当前数据输入到字段中,并且在我输入新值时不进行更新?谢谢你的帮助 php:Php 从“编辑”按钮更新表条目,php,html,sql-server,Php,Html,Sql Server,有人能告诉我我的问题在哪里吗?这个页面是通过我嵌入在所有条目表中的编辑按钮链接的。但是,它正在将当前数据输入到字段中,并且在我输入新值时不进行更新?谢谢你的帮助 php: > 我建议您进行3项更改: 1.0为表单输入提供从数据库收集的变量的不同名称(例如,代替$firstname Give,但使用$firstname\表单) 2.0您的表单的方法为GET,但您正在使用POST进行更新 3.0您的表单操作页面是edit.php,但您通过GET收集项目id这一事实意味着您的编辑按钮必须链接到某个ed
>
我建议您进行3项更改:1.0为表单输入提供从数据库收集的变量的不同名称(例如,代替$firstname Give,但使用$firstname\表单) 2.0您的表单的方法为GET,但您正在使用POST进行更新 3.0您的表单操作页面是edit.php,但您通过GET收集项目id这一事实意味着您的编辑按钮必须链接到某个edit.php?id=$item\u id,因此操作页面应该是edit.php?id=$id
转交您的意见:是的。正是我想象的。因此,对于表单操作,将edit.php替换为edit.php?id=
您的意思是,如果此页面上存在id,则将其显示为paramater。我没有要求更改您的链接按钮。这是正确的。为了证明它是正确的,请在编辑页面上像这样回显id
如果(isset($\u GET['id'])){ $id=$_GET['id'] echo$id;
退出() } 然后,在确认id已传递到编辑页面后,可以注释或删除回显行和退出行 现在,在你的表格上,我是说动作应该是这样的
不确定这是否是您的问题,但您有
$\u POST['update']
,但您的表单是method=“get”
谢谢您的帮助!非常感谢,非常感谢我将进行这些更改,请注意“这是我使用的表单链接,您觉得这样可以吗?您意识到他在html中有一个隐藏的输入,对吗?我现在得到一个未定义的变量:id错误,我已将按钮格式化为echo”
<?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>