2016-05-19 75 views
-1

我搜索了,我找不到我的錯,
我想在我的textarea內顯示$content。我也試圖把它放到value屬性中,但這也不起作用。把變量從PHP到html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
<?php 
$search = array('foo','bar','foobar'); 
$replace = array('f**','b**','f**b**'); 

if (isset($_POST['cencor']) &&! empty($_POST['cencor'])){ 
    $content = $_POST['cencor']; 
} 

?> 
<form action="findstring.php" method="post"> 
    <textarea name="cencor" rows="10" cols="80"><?php echo $content ?></textarea><br><br> 
    <input type="submit" value="submit"> 
</form> 

</body> 
</html> 
+2

你在textarea裏面的'$ content'後會錯過一個分號? – JohannesB

+0

要檢測更多的錯誤,你應該把你的錯誤報告。爲此,在你的文件的開頭添加'error_reporting(E_ALL)',你可以在這裏閱讀更多關於它的信息(http://php.net/manual/en/function.error-reporting.php)。 – JohannesB

+0

它可能是「&&!」。在最後的&符號和驚歎號之間嘗試一下,並在感嘆號和「空」字之間沒有空格。但總體error_reporting可能是你想要的!幫助我走出很多! – tjfo

回答

2

你應該在你<textarea>只要頁面加載越來越以下錯誤:

<b>Notice</b>: Undefined variable: content in <b>/path/to/file.php</b> on line <b>x</b><br />

然而,你不檢查錯誤。

你需要做的是在其中使用$content變量的條件語句。

旁註:在那裏缺少的分號是完全有效的,因爲在它之後沒有進一步的(PHP)指令被傳遞,所以讓我們失去這種誤解(在註釋中)。

但是,如果有使用時,條件語句,將需要執行以下操作:

if(isset($content)){ echo $content } 

,並會失敗,因爲它是尋找一個「語句的結束」,並拋出了以下內容:

Parse error: syntax error, unexpected '}', expecting ',' or ';' in...

  • 分號是「語句結束」字符。

目前還不清楚你真的想在這裏與陣列做什麼,所以我不能在這裏幫你。

另一個旁註:

&&! empty是有效的,但對於參數的緣故,我將它更具可讀性,&& !empty

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

$search = array('foo','bar','foobar'); 
$replace = array('f**','b**','f**b**'); 

if (isset($_POST['cencor']) && !empty($_POST['cencor'])){ 
    $content = $_POST['cencor']; 
} 

?> 
<form action="findstring.php" method="post"> 
    <textarea name="cencor" rows="10" cols="80"><?php if(isset($content)){ echo $content; } ?></textarea><br><br> 
    <input type="submit" value="submit"> 
</form> 

</body> 
</html> 

腳註:

此條件語句:

if (isset($_POST['cencor']) && !empty($_POST['cencor'])) 

可以被削減到只:

if (!empty($_POST['cencor'])) 

沒有什麼東東d使用isset(),因爲!empty()已經足夠了。

上的補充說明:

爲了避免不確定的變量聲明,你可以做以下,並於$content變量,這是完全有效的分配「無中生有」:

$search = array('foo','bar','foobar'); 
$replace = array('f**','b**','f**b**'); 

    if (isset($_POST['cencor']) &&! empty($_POST['cencor'])){ 

     $content = $_POST['cencor']; 
    } 

$content = ""; 

關閉筆記:

如果這裏的目標是保持已輸入我的價值在<textarea>瀏覽器的會話和用戶瀏覽整個網站的持續時間,那麼這就是你需要在這裏使用,會話

例如:

PHP:

if(!empty($_POST['cencor'])){ 

    $_SESSION['var'] = $_POST['cencor']; 
    $_POST['cencor'] = $_SESSION['var']; 

} 

HTML:

<textarea name="cencor" rows="10" cols="80"><?php if(isset($_SESSION['var'])){ echo $_SESSION['var']; } ?></textarea> 

NOTA:如果這個答案沒有解決你想達到的目標,你需要詳細說明你的問題。

+0

note或nota bene? – DarkBee

+0

@DarkBee * hehe *,幾乎聽起來像*「molto bene」* –

+0

感謝您提供的信息。但我試圖只能讀取$ _POST。這個問題並不清楚爲混淆抱歉。 –