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>&nbsp;
                    <input type='checkbox' name='showing'><label for='showing'>&nbsp; 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您为每个输入都设置了该条件。你仍然可以将它们保持在相同的形式…将提出的请求将检查它们中的每一个。如果数据库中已有一个数据库,它将通过该数据库。这就是为什么我建议你打印这些表单中的每一个条目。如果你不想为每一个条目设置条件,你仍然可以打印它们,并使用你已经使用的方法…请求将获取表单中的内容并将其插入数据库…因此,假设你修改了名称,而其他内容保持不变,这无关紧要,因为它会在表单中插入什么,在本例中,是从数据库中打印出来的值……因此,如果您不更改它们,它不会以不同方式更改它们