2012-08-09 50 views
3

PHP部分在這裏所以當我發佈它,否則零件根本不工作(意思是:我設置的文本消失),而另一半工作(意思是:我可以分配變量,但不能留空)。我一直在努力整晚......請幫忙! 所以這是第二頁,如果您需要查看第一頁上的代碼,請告訴我!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> 
+2

你的意思是什麼:「不工作*錯誤 – tuxtimo 2012-08-09 11:03:25

+0

也許想嘗試空()代替isset()函數 – Moak 2012-08-09 11:04:58

+0

@tuxtimo?!?! :假設我應該爲每個變量設置「else」設置值,即使我沒有爲每個變量設置輸入,但是如果沒有輸入,根本就沒有輸出。 – progresser 2012-08-09 11:38:09

回答

4

代替使用echo,在else部分也使用變量賦值。

if (isset($_POST['lovers'])) { 
    $lovers = $_POST['lovers']; 
}else{ 
    $lovers = "P & M"; 
} 
+0

感謝您的回答!但它以某種方式仍然不起作用... – progresser 2012-08-09 11:10:14

1

您的語句應該是這樣......

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

對不起,它不' t work ... – progresser 2012-08-09 11:19:22

+0

你得到的錯誤是什麼? – 2012-08-09 11:28:11

+0

它並沒有真正得到任何錯誤 - 所以我應該得到每個變量的「其他」設置值,即使我沒有爲每個變量輸入。但是,如果沒有輸入,則根本沒有輸出 - 這完全是空白。 – progresser 2012-08-09 11:40:39

0

你不想呼應,你要分配它,那麼你會在你的其他PHP腳本打印。

我想你想設置默認值,如果它不在$ _POST數組中。嘗試

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

如果你不想一空色,使用

$color = !empty($_POST['color']) ? $_POST['color'] : 'yellow'; 
+0

感謝您的回答!但我試過,這是相同的結果... – progresser 2012-08-09 11:41:12

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/"; 
?> 

可以用!empty取代isset如果你想確保字段不爲...空

+0

謝謝,但對不起,它不工作... – progresser 2012-08-09 11:19:02

+0

對不起,您將需要顯示更多的代碼,並解釋什麼不起作用 – Moak 2012-08-09 11:33:11

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)); 
0

你所有的isset $_post功能,因爲它不會走到其他部分可能這就是工作。

+0

是的我同意,但我不看看爲什麼... – progresser 2012-08-09 11:42:44

3

isset()告訴你變量是否存在。如果你有一個表單(你沒有顯示html),並且有人將這個字段留空,那麼該字段存在但是是空的。在提交表單後,表單元素不會存在,所以isset()永遠不會返回FALSE。所以你想使用!empty()而不是isset()。

0

isset僅當變量未設置或設置爲null時才返回false。當變量爲''(空字符串)時,它將返回true,這將是在第一頁中沒有值輸入該字段時獲得的值。

您需要使用empty才能正常工作,這將返回true未設置和空的線索。它針對非空值返回false。你需要在!(不是運營商)預先使用它在這裏使用它。

而且您正在使用ifecho中的變量賦值else。我認爲這是問題的原因。將該echo更改爲分配。

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

別忘了!

0

這是一個想法。首先聲明變量和值。如果$_POST['lovers']不是null然後改變變量值:

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