【问题标题】:If $_POST is empty function如果 $_POST 是空函数
【发布时间】:2012-06-12 12:37:24
【问题描述】:

我正在创建一个使用 $_POST php 函数的表单。

这是我的表单的样子。

form.php

<h1>Songs Movies Form</h1>
<hr />

<form action="songs-movies.php" method="post">

Song Name:
Enter Song Name: <input type="text" name="SongName" size="25" />

Enter Movie Name: <input type="text" name="MovieName" size="25" />

<input type="submit" value="Submit" name="submit" />

</form>

<br />
<a href="/forms/">Back to Forms</a>
<hr />

现在我想显示 SongNameMovieName 的结果,所以我使用了 echo $_POST["SongName"]; >echo $_POST["MovieName"]; 完美生成结果。

现在我想将这些值 SongNameMovieName 放在结果/输出页面中的文本/行/para 之间,如果 SongName 或 MovieName 为空,则结果/输出不应显示我放置这些函数的特定文本/行/para。

例如


ABC歌曲XYZ电影的流行歌曲。 XYZ电影ABC歌曲由PQR导演执导。


现在你可以看到上面的 Para 中有两句话。只有当 SongNameMovieName 的字段值为空时,我才想将第一句的功能放在那时

  • 无论SongNameMovieName的字段值是否为空,都应该显示第一句即ABC歌曲是XYZ电影的流行歌曲。如果 SongNameMovieName 的字段值为空,则可以在它们之间留下空格,我知道可以通过此函数 echo $_POST["歌曲名"];

但是

  • 如果SongNameMovieName的字段值为空,则不应显示第一句行,即XYZ电影的ABC歌曲由PQR导演执导.

【问题讨论】:

  • 你可以检查$_POST['key']是否设置为isset($_POST['key']),然后做任何你喜欢的事情。

标签: php forms function


【解决方案1】:

我认为你正在寻找的是这样的:

if(!empty($_POST['foo'])) {
   echo "a sentence".$_POST['foo']." with something in the middle.";
}

这将检查该值是否为空,但空意味着 PHP 中的很多东西,所以您可能需要更具体。例如,您可能想检查简单是否设置:

if(isset($_POST['foo'])) {
   echo "a sentence".$_POST['foo']." with something in the middle.";
}

【讨论】:

  • 我已经尝试过if(isset($_POST['foo'])) { 但它不起作用。
  • if(!empty($_POST['foo'])) { 它似乎符合我的要求。
  • 只是检查一下,你确实用你的实际变量名替换了 foo 是吗?
  • if(!empty($_POST['foo'])) { echo "a sentence".$_POST['foo']." with something in the middle."; } 这对我有用。谢谢,我也想要。
  • 我用变量 SongName 替换了“foo”,它完全符合我的要求。
【解决方案2】:

你真的把最后 2-3 句话弄糊涂了。
你想做的事情可以通过使用 if、elseif 和 else 控制结构来完成。

if ($_POST['MovieName'] AND $_POST['SongName']) 
{
    //code
}  
elseif ($_POST['MovieName'])
{
    //code
}  
elseif ($_POST['SongName']) 
{
    //code
}  
else 
{
    //code
}

【讨论】:

  • empty() 比评估为布尔值更安全,因为如果变量完全未定义,隐式 isset() 会阻止 E_NOTICE 被引发。
  • if(!empty($_POST['foo'])) { echo "a sentence".$_POST['foo']." with something in the middle."; } 这对我有用。谢谢,我也想要。
【解决方案3】:

您可以通过三种方式做到这一点。

  1.  

    if(isset($_POST['value1']))
    {
        //...
    }
    
  2.  

    if(!empty($_POST['value1'])) 
    {
        //...
    }
    
  3. 简单的方法

    if($_POST('value1')=="")
    {
        ....
    }
    

当我对表单提交感到困惑时,我有时会使用第三种方式,但当然第一种和第二种更优雅!

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 2016-12-30
    • 2011-11-24
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2022-06-15
    • 2012-10-14
    相关资源
    最近更新 更多