提交按钮已被点击

时间:2019-01-05 13:37:25

标签: php html

我有一个要提交的表单,并且检查是否有文本框包含文本,以便可以更新数据库中的某些内容。

这是表格的代码:

<form action="" method="POST"/>          
CNP Nou: <input type="text" name="cnpN"/><br/> 
Nume Nou: <input type="text" name="numeN"/><br/> 
Prenume Nou: <input type="text" name="prenN"/><br/> 
Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/> 
Sex Nou: <input type="text" name="sexN"/> F sau M <br/> 
Numar Telefon Nou: <input type="text" name="telN"/><br/> 
Adresa Noua: <input type="text" name="adrN"/><br/> 
E-mail Nou: <input type="text" name="mailN"/><br/> 
<input type="submit" value="Modifica" name="search2" class="submit" /> 
</form>

然后我检查是否单击了按钮,以便查看是否有任何文本框已写入文本以便在数据库中进行更新:

if (isset($_POST["search2"])) 
{
    if (!empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) || !empty($_POST['dataNN']) || !empty($_POST['sexN']) || !empty($_POST['telN']) || !empty($_POST['adrN']) || !empty($_POST['mailN'])) 
    {
        //php code for update
    }
}
else
{
    echo "<h4><b> Eroare! </b><h4>";
}

问题在于,如果没有单击按钮,我将看到“ Eroare!”信息。如果删除了else语句,然后单击按钮,即使在表单中引入了某些内容,数据库也不会发生任何变化。

我使用else语句只是为了看看是否可能是问题所在。

我正在看代码一段时间,看不到问题所在。 我知道可以使用更简单的方法来检查已完成的文本框,但是我是php的新手,因此我认为这样比较容易。

4 个答案:

答案 0 :(得分:1)

else子句属于if非空条件。

首次加载php脚本时,不存在POST数据。这是预期的,因为它是GET请求。这就是为什么初始条件为false并显示错误消息的原因。 POST绝不会在HTTP GET请求上设置。

答案 1 :(得分:0)

您的代码运行正常,输出显示出来,因为在开始时未提交“表单”,而“如果”未提交,则“ else”应该起作用而“ else”正在起作用。如果您不希望显示它,则可以删除else。它将很好用,也请不要过早结束表单标签

代替

<form action="" method="POST"/>

使用此

<form action="" method="POST">     `

答案 2 :(得分:0)

“提交”按钮尚未被单击,但是您的代码正在输出“ Eroare”,因为最初,您没有设置页面加载时的任何发布数据,包括search2。因此,除非您标记发生了错误,否则您不需要else的条件部分,而是在if(isset($_POST["search2"])){}块内。 否则,它将始终输出“ Eroare”。

您首先需要验证表单数据,然后在任何表单数据不满足条件的情况下引发错误。

关于验证过程,您可能需要实现一些现有的验证库,或者需要扩展条件来检查特定数据,特定验证要求。

其中一些是必填项(不为空),其中一些将要求列表中的值受限制/受限制(例如“性别”字段),一些则需要数字值验证(电话),电子邮件字段将需要电子邮件值验证。

此外,您缺少用于数据库插入的部分。

未经高级验证的简化代码如下:

  <?php

$post_search2 = filter_input(INPUT_POST,'search2'); //filter_input returns empty if input not set, and it is useful to filter and validate specific values;
if(!empty($post_search2))
{

    $form_values = array('cnpN', 'numeN', 'prenN', 'dataNN', 'sexNN', 'telN', 'adrN', 'mailN'); //I have placed it in array to avoid having large code and simplify checks through iteration

    $parsed_data = array();
    foreach($form_values as $form_value){
        $value = filter_input(INPUT_POST, $form_value);
        if(!empty($value)){ //update parsed data only if form data is not empty
            $parsed_data[$form_value] = $value;
        }

    }
    //so if any of data is filled, do the updates
    //this actually does same as  !empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) && ... 
    //  if you would require all data filled, check if count($parsed_data) === count($form_values) and that actually does same as this actually does same as  !empty($_POST['cnpN']) && !empty($_POST['numeN']) &&  !empty($_POST['prenN']) && ...
    //
    if(count($parsed_data) > 0){
        //php code for update

    }else{
        echo "<h4><b> Eroare! </b><h4>";
    }


}

?>

<form action="" method="POST">
CNP Nou: <input type="text" name="cnpN"/><br/>
Nume Nou: <input type="text" name="numeN"/><br/>
Prenume Nou: <input type="text" name="prenN"/><br/>
Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/>
Sex Nou: <input type="text" name="sexN"/> F sau M <br/>
Numar Telefon Nou: <input type="text" name="telN"/><br/>
Adresa Noua: <input type="text" name="adrN"/><br/>
E-mail Nou: <input type="text" name="mailN"/><br/>
<input type="submit" value="Modifica" name="search2" class="submit" />
</form>

答案 3 :(得分:0)

只需从表单标签中删除关闭标签

即,将<form action="" method="POST"/>更改为<form action="" method="POST">

如果不能解决您的问题,请使用以下代码段,

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">          
CNP Nou: <input type="text" name="cnpN"/><br/> 
Nume Nou: <input type="text" name="numeN"/><br/> 
Prenume Nou: <input type="text" name="prenN"/><br/> 
Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/> 
Sex Nou: <input type="text" name="sexN"/> F sau M <br/> 
Numar Telefon Nou: <input type="text" name="telN"/><br/> 
Adresa Noua: <input type="text" name="adrN"/><br/> 
E-mail Nou: <input type="text" name="mailN"/><br/> 
<input type="submit" value="Modifica" name="search2" class="submit" /> 
</form>

PHP代码

if(isset($_POST["search2"]))  
      if(!empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) || !empty($_POST['dataNN']) || !empty($_POST['sexN']) || !empty($_POST['telN']) || !empty($_POST['adrN']) || !empty($_POST['mailN']))
      {
             //php code for update
      }