PHP部分在这里所以当我发布它时,其他部分根本不起作用(意思是:我设置的文本刚刚消失),而另一半工作(意思是:我可以分配变量) ,但不能留空)。我一整晚都在苦苦挣扎......请帮忙! 所以这是第二页,如果你需要看一下第一页的代码,请告诉我!
<?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>
答案 0 :(得分:5)
不使用echo
,而是在else部分使用变量赋值。
if (isset($_POST['lovers'])) {
$lovers = $_POST['lovers'];
}else{
$lovers = "P & M";
}
答案 1 :(得分:4)
isset()告诉您变量是否存在。如果你有一个表单(你没有显示html),并且有人将该字段留空,则该字段存在但是为空。提交表单后,表单元素无法存在,因此isset()永远不会返回FALSE。所以你想使用!empty()而不是isset()。
答案 2 :(得分:1)
你的陈述应该像......
if (isset($_POST['lovers']) && ($_POST['lovers'] != ''))
{
$lovers = $_POST['lovers'];
}
else
{
$lovers = "P & M";
}
答案 3 :(得分:1)
三元运算符会让它变得更加清晰。
例如:
$imdblink = ((isset($_POST['imdblink'])) ? ($_POST['imdblink']) : ('http://www.imdb.com/'));
此外,您应该定义默认值,并使用变量变量。 (这里是一个不使用define的例子)
$vars = array('imdblink' => 'http://www.imdb.com/');
foreach ($vars as $varName => $defaultVal)
$$varName = ((isset($_POST[$varName])) ? ($_POST[$varName]) : ($defaultVal));
答案 4 :(得分:0)
你不想回应,你想要分配它,然后你将在其他PHP脚本中打印它。
我认为你试图设置默认值,如果它没有出现在$ _POST数组中。试试
$color = isset($_POST['color']) ? $_POST['color'] : 'yellow';
如果您从不想要空白颜色,请使用
$color = !empty($_POST['color']) ? $_POST['color'] : 'yellow';
答案 5 :(得分: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
答案 6 :(得分:0)
你所有的$_post
函数都可能有用,因为它不会成为其他部分。
答案 7 :(得分:0)
isset
时, false
才会返回null
。当变量为true
(空字符串)时,它将返回''
,这将是在第一页中该字段中未输入任何值时获得的值。
您需要使用empty
才能正常工作,这将返回true
未设置和清空的线索。对于非空值,它返回false
。您需要在!
(非运算符)前面加上它才能在此处使用它。
您正在使用if
中的变量分配和echo
中的else
。我认为这就是问题的原因。将echo
更改为分配。
if (!empty($_POST['lovers']))
{
$lovers = $_POST['lovers'];
}else{
$lovers = "P & M";
}
不要忘记!
。
答案 8 :(得分:0)
这是一个想法。首先声明变量和值。如果$_POST['lovers']
不是null
,则更改变量值:
$lovers = "P & M";
if (isset($_POST['lovers']))
{
$lovers = $_POST['lovers'];
}
echo $lovers;