问题描述
我正在从表中获取一些数据,并从我的表单中检索它们。
$pageSet = new Page();
$pageSet->GetPage($_GET['page_url']);
$homePage = $pageSet->GetHomePage();
if(count($homePage)!=0){
foreach($homePage as $home){
echo "
<form action='' method='POST'>
<div class='box box-default'>
<div class='box-header with-border'>
<h3 class='box-title'><span style='color:blue'><span>".$home['name_service']."</span></h3>
<div class='box-tools pull-right'>
<button type='button' class='btn btn-box-tool' data-widget='collapse'><i class='fa fa-minus'></i></button>
</div>
</div>
<div class='box-body'>
<div class='row'>
<div class='col-md-6'>
<div class='form-group'>
<label for='ser'>Name of Service:</label>
<input name='sname' type='text' class='form-control' value='".$home['name_service']."'>
</div>
<div class='form-group'>
<label for='ser'>Background Color of Box:</label>
<input name='bgbox' type='text' class='form-control' value='".$home['bg_box']."'>
</div>
<div class='form-group'>
<label for='ser'>Description of Service:</label>
<input name='sdesc' type='text' class='form-control' value='".$home['desc_service']."'>
</div>
<div class='form-group'>
<label for='ser'>Link of Service:</label>
<input name='slink' type='text' class='form-control' value='".$home['link_service']."'>
</div>
</div>
</div>
</div>
<p>
<button name='update' type='submit' class='btn btn-success btn-lg'>Update</button>
<button type='button' class='btn btn-danger btn-lg'>Delete</button>
<input type='checkbox' name='showing'><label for='showing'> Hide from showing</label></br>
</p><hr></hr>
</div>
</form>
";
}
}
从表中检索数据的方法是这样的:
public function GetHomePage()
{
$home = $this->_db->prepare("SELECT * FROM `homepage` ORDER BY 'priority_service'");
$home->execute();
$home_array = array();
while($row = $home->fetch())
{
$home_array[] = $row;
}
return $home_array;
}
结果如下:
您可以在表格末尾看到,我使用了“更新”按钮来更新表格。
以下是此表单的操作:
以下是此表单的操作:
if (isset($_POST['update'])){
$servicename = $_POST['sname'];
$backgroundbox = $_POST['bgbox'];
$servicedesc = $_POST['sdesc'];
$servicelink = $_POST['slink'];
$updatation = new Page();
$notice[] = $updatation->UpdateService($servicename,$backgroundbox,$servicedesc,$servicelink);
$notice = $updatation->getNotice();
}
但是当我想更改一种表单的name service
时,它会更新整个表单和行。
因为所有形式的动作都相同。因此,我需要根据表ID对每个表单执行不同的操作,因此,如果有人要更新一个表单,则只会更新该表单,而不会更新其他表单。
这是表结构:
解决方法
如果记录已存在,则应在表格中打印值。.那么您可能会遇到诸如if new_name == old name
的条件,请不要对其进行更新,if new_name != old_name
请对其进行更新。 。,因此您可以针对所有输入内容执行此操作