Php 如何为窗体设置不同的操作
我正在从表中获取一些数据,并在表单中检索它们Php 如何为窗体设置不同的操作,php,forms,Php,Forms,我正在从表中获取一些数据,并在表单中检索它们 $pageSet = new Page(); $pageSet->GetPage($_GET['page_url']); $homePage = $pageSet->GetHomePage(); if(count($homePage)!=0){ foreach($homePage as $home){ echo " <form action='' method='POST'>
$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>
";
}
}
结果如下:
正如您在表单末尾看到的,我使用了一个更新按钮来更新我的表
以下是此表单的操作:
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();
}
以下是此表单的操作:
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();
}
但是当我想更改一个表单的名称服务
时,它会更新整个表单和行
因为所有形式的作用都是相同的。因此,我需要根据表id对每个表单执行不同的操作,因此,如果有人想要更新一个表单,则只更新该表单,而不更新其他表单
以下是表格结构:
如果记录已经存在,您应该打印表单中的值……然后您可以有一个条件,如
如果新名称==旧名称
不更新它,如果新名称!=旧的_名称
,更新它…这样您就可以对所有输入进行更新在表单中放置一个隐藏字段
。发布时,将WHERE id=record\u id
添加到查询中,以便只更新该行。@Michel此record\u id
来自何处?我想table\u id
是唯一的。我给你举了一个例子,说明当我遇到同样的问题时,你应该怎么做,这些示例只是示例,您应该用您拥有的替换它们,如果新名称===旧名称
但新颜色!==旧颜色
?在这种情况下,它不会更新颜色。因此,在这种情况下,您必须检查所有可以更新的列。@Michel您为每个输入都设置了该条件。你仍然可以将它们保持在相同的形式…将提出的请求将检查它们中的每一个。如果数据库中已有一个数据库,它将通过该数据库。这就是为什么我建议你打印这些表单中的每一个条目。如果你不想为每一个条目设置条件,你仍然可以打印它们,并使用你已经使用的方法…请求将获取表单中的内容并将其插入数据库…因此,假设你修改了名称,而其他内容保持不变,这无关紧要,因为它会在表单中插入什么,在本例中,是从数据库中打印出来的值……因此,如果您不更改它们,它不会以不同方式更改它们