我有几个表单的内容,用户可以编辑,一个简单的例子是profile.php的五个字段,用户可以更改其中的三个(目前):姓名,姓氏和地址。html表单从sql中提取它们的现有数据,并将其显示在可编辑的文本框中。
下面是我如何获取各种变量的方法:
<?php
//PHP to submit content of profile fields.
if($_SERVER["REQUEST_METHOD"] == "POST"){
//Set ID for insert statement
$id=$rows['id'];
//Get name from form
if(empty($_POST['name'])){
$name = $rows['name'];
}
elseif($_POST['name'] == $rows['name']){
$name = $rows['name'];
}
else{
$name = $_POST['name'];
print $name;
}
//Get Surname from form
if(empty($_POST['surname'])){
$name = $rows['surname'];
}
elseif($_POST['surname'] == $rows['surname']){
$surname = $rows['surname'];
}
else{
$surname = $_POST['surname'];
}
//Get Address from form
if(empty($_POST['address'])){
$name = $rows['address'];
}
elseif($_POST['address'] == $rows['address']){
$address = $rows['address'];
}
else{
$address = $_POST['address'];
}
$sql = "UPDATE usr SET name = ?, surname = ?, address = ?
where id = ?"(然后提交查询的其余代码如下,除非你们需要,否则我不会在这里包括它。这是基本的mysqli内容。)
上面的内容感觉非常不稳定和冗长,有没有更好的方法来做到这一点,特别是当表单变长的时候?实际上,我将" if ( empty )“写得尽可能简单,以避免必须为每个函数创建一个错误回显,因为如果用户试图输入空字段,该函数基本上会在加载时保留表单中的内容。
我感觉,一旦我开始添加生日、电话号码和其他内容,查询将变得非常长,sql update语句将会疯狂地使用"ssssss“等。
有什么想法吗?
发布于 2020-04-21 20:22:45
你也可以使用一个三元函数:
$name = (empty($_POST['name'])? $rows['name'] : $_POST['name']);例如。如果对empty()的调用为真(表单变量为空),它将从$rows返回变量,否则将从表单返回变量。
查看表单域与数据库域是否相同的额外代码有点浪费,因为如果相同,则使用表单域和使用数据库域没有区别。
https://stackoverflow.com/questions/61342708
复制相似问题