3

PHP 部分在这里所以当我发布它时,else 部分根本不起作用(意思是:我设置的文本消失了),而另一半有效(意思是:我可以分配变量,但不能留空)。我整晚都在为此苦苦挣扎……请帮忙!所以这是第二页,如果你需要看第一页的代码,请告诉我!

<?php
$lovers = $_POST['lovers'];
$quote = $_POST['quote'];
$color = $_POST['color'];
$font = $_POST['font'];
$imdblink = $_POST['imdblink'];
?>

<?php
if (isset($_POST['lovers']))  
    {
$lovers = $_POST['lovers'];
    }else{
        echo "P & M";
     }

if (isset($_POST['quote']))  
     {
        $quote = $_POST['quote'];
     }else{
        echo "I love you.";
     }

  if (isset($_POST['color']))  
     {
        $color = $_POST['color'];
     }else{
        echo "yellow";
     }

  if (isset($_POST['font']))  
     {
        $font = $_POST['font'];
     }else{
        echo "Futura";
     }

  if (isset($_POST['imdblink']))  
     {
        $imdblink = $_POST['imdblink'];
     }else{
        echo "http://www.imdb.com/";
     }
?>

这是 HTML 部分:这里有什么问题吗?请帮忙!

<div class="artGroup slide">
  <div class="artwork"> <img src="../_images/M&P.png">
    <div class="detail">
      <div class="movie01c" style="font-family: <?php echo "{$font}"; ?>; font-size: 20px; color: <?php echo "{$color}";?>;">
     <?php echo "{$quote}";?>
      </div>
      <div class="movie01t"><a href="<?php echo "{$imdblink}";?>">
      <?php echo "{$lovers}";?>
      </a></div>
    </div>
  </div>
</div>
4

9 回答 9

5

而不是 using echo,在 else 部分也使用变量赋值。

if (isset($_POST['lovers'])) {
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}
于 2012-08-09T11:03:37.713 回答
4

isset() 告诉你变量是否存在。如果您有一个表单(您没有为其显示 html),并且有人将该字段留空,则该字段存在但为空。表单提交后表单元素是不可能不存在的,所以 isset() 永远不会返回 FALSE。所以你想使用 !empty() 而不是 isset()。

于 2012-12-31T05:30:14.193 回答
1

你的陈述应该像......

if (isset($_POST['lovers']) && ($_POST['lovers'] != ''))
{
    $lovers = $_POST['lovers'];
}
else
{
    $lovers = "P & M";
}
于 2012-08-09T11:07:31.463 回答
1

三元运算符会使它变得更加清晰。

例如:

$imdblink = ((isset($_POST['imdblink'])) ? ($_POST['imdblink']) : ('http://www.imdb.com/'));

此外,您应该定义默认值,并使用变量变量。(这里是一个不使用定义的例子)

$vars = array('imdblink' => 'http://www.imdb.com/');
foreach ($vars as $varName => $defaultVal)
  $$varName = ((isset($_POST[$varName])) ? ($_POST[$varName]) : ($defaultVal));
于 2012-08-09T11:15:47.103 回答
0

你不想回显,你想分配它,然后你会在你的其他 PHP 脚本中打印它。

如果 $_POST 数组中没有它,我认为您正在尝试设置默认值。尝试

$color = isset($_POST['color']) ? $_POST['color'] : 'yellow';

如果您从不想要空白颜色,请使用

$color = !empty($_POST['color']) ? $_POST['color'] : 'yellow';
于 2012-08-09T11:08:19.187 回答
0

这应该工作

<?php
$lovers = isset($_POST['lovers']) ? $_POST['lovers'] : "P & M" ;
$quote = isset($_POST['quote'])? $_POST['quote'] : "I Love You";
$color = isset($_POST['color'])? $_POST['color'] : "yellow";
$font = isset($_POST['font']) ? $_POST['font'] : "Futura";
$imdblink = isset($_POST['imdblink'])? $_POST['imdblink']: "http://www.imdb.com/";
?>

如果您想确保该字段不是...空,您可以替换isset!empty

于 2012-08-09T11:08:28.920 回答
0

你所有的 isset$_post函数都可能起作用,因为它不会出现在 else 部分。

于 2012-08-09T11:19:14.113 回答
0

issetfalse仅当变量未设置或设置为 时才返回nulltrue当变量为(空字符串)时它将返回,''这将是您在第一页的该字段中没有输入值时获得的值。

您需要使用empty它才能正常工作,这将返回true未设置和空的 vlues。它false为非空值返回。您需要在前面加上!(不是运算符)才能在此处使用它。

你正在使用变量赋值 inifechoin else。我认为这就是问题的原因。将其更改echo为分配。

if (!empty($_POST['lovers']))  
{
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}

别忘了!

于 2012-12-31T05:55:15.090 回答
0

这是一个想法。首先声明变量和值。如果$_POST['lovers']不是null,则更改变量值:

$lovers = "P & M";
if (isset($_POST['lovers']))
{
    $lovers = $_POST['lovers'];
}
echo $lovers;
于 2016-08-27T19:59:08.327 回答