首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php:表单返回表单

Php:表单返回表单
EN

Stack Overflow用户
提问于 2013-12-02 14:30:07
回答 1查看 104关注 0票数 0

我有一个单选按钮表单,它为每个特定的选项返回某种类型的表单。我从第二个开始获得的数据将用于在数据库中搜索。我的问题是,如果我在第二个表单中提交数据时,对这两个表单都使用post方法,那么就会注意到,对于第一个表单,我没有这样做,因为每次加载页面时,我的代码都会验证变量是否为空。我可以在PHP中做些什么,这样服务器就可以区分表单,而不会在每次通过post提交数据时进行检查?我试着命名提交按钮,但它似乎不起作用。在数据库中搜索的代码,它是在另一个文件中编写的,并且正在工作。提前谢谢。

代码语言:javascript
复制
<!doctype html>
<html>
<body>
<?php
// define variables and set to empty values
$optiuneErr="";
$optiune="";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{

   if (empty($_POST["optiune"]))
     {$optiuneErr= "Selectati optiunea";}
   else
     {$optiune = test_input($_POST["optiune"]);}
}
?>
<?php
$numeErr=$anErr=$regiuneErr=$succesorErr=$predecesorErr="";
$nume=$an=$regiune=$succesor=$predecesor="";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{

    if (empty($_POST["nume"]))
     {$numeErr= "Introduceti numele";}
   else
     {$nume = test_input($_POST["nume"]);}
     if (empty($_POST["an"]))
     {$anErr = "Introduceti anul";}
   else
     {$an = test_input($_POST["an"]);}
     if (empty($_POST["regiune"]))
     {$regiuneErr = "Introduceti regiunea";}
   else
     {$regiune = test_input($_POST["regiune"]);}
     if (empty($_POST["succesor"]))
     {$succesorErr = "Introduceti succesorul";}
   else
     {$succesor = test_input($_POST["succesor"]);}
     if (empty($_POST["predecesor"]))
     {$predecesorErr = "Introduceti predecesorul";}
   else
     {$predecesor = test_input($_POST["predecesor"]);}
}
function test_input($data)
{
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
}
?>
<p><span class="error">* Selectati un camp.</span></p>
<form method="post" > 
<input type="radio" name="optiune" value="1" />Cauta dupa nume <br />
<input type="radio" name="optiune" value="2" />Cauta dupa an<br />
<input type="radio" name="optiune" value="3" />Cauta dupa regiune<br />
<input type="radio" name="optiune" value="4" />Cauta dupa succesor<br />
<input type="radio" name="optiune" value="5" />Cauta dupa predecesor<br />
<input type="submit" name="submit1" value="Alege" />
<span class="error"> <?php echo $optiuneErr;?></span>
</form>

<?php
switch($optiune)
{
    case 1:
        echo '
        <p><span class="error">* Introduceti o valoare.</span></p>
        <form method="POST">
        Nume: <input type="text" name="nume"><br>
        <input type="submit" value="Cauta" />
        <span class="error"> <?php echo $numeErr;?></span>
        </form>';
        break;
    case 2:
        echo '
        <p><span class="error">* Introduceti o valoare.</span></p>
        <form method="POST" >
        An: <input type="text" name="an"><br>
        <input type="submit" value="Cauta" />
        <span class="error"> <?php echo $anErr;?></span>
        </form>';
        break;
    case 3:
        echo '
        <p><span class="error">* Introduceti o valoare.</span></p>
        <form method="POST">
        Regiune: <input type="text" name="regiune"><br>
        <input type="submit" value="Cauta" />
        <span class="error"> <?php echo $regiuneErr;?></span>
        </form>';
        break;
    case 4:
        echo '
        <p><span class="error">* Introduceti o valoare.</span></p>
        <form method="POST">
        Succesor: <input type="text" name="succesor"><br>
        <input type="submit" value="Cauta" />
        <span class="error"> <?php echo $succesorErr;?></span>
        </form>';
        break;
    case 5:
        echo '
        <p><span class="error">* Introduceti o valoare.</span></p>
        <form method="POST">
        Predecesor: <input type="text" name="predecesor"><br>
        <input type="submit" value="Cauta" />
        <span class="error"> <?php echo $predecesorErr;?></span>
        </form>';
        break;
}
?>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-02 14:36:28

您应该使用isset()函数。

代码语言:javascript
复制
if (isset($_POST['submit1']))
{

if (empty($_POST["optiune"]))
 {$optiuneErr= "Selectati optiunea";}
else
 {
    if(isset($_PoST['nume']))
    {
       $nume = test_input($_POST["nume"]);
    }
    else if($_POST['an'])
    {
      ///////some checking code/////
    }

    ////and so on for all individual forms///
  }
}

第二阶段就像这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20330701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档