2013-07-30 36 views
1

我想知道如何讓用戶在textarea內輸入一些文本,然後當他按下保存按鈕時,他鍵入的文本保存在文件內部是我的代碼:如何將文本從textarea發送到文件

<?php 
header("location: add/Project.html"); 

$handle = fopen("Project.html", "a"); 
foreach($_POST as $value) { 

fwrite($handle, $value); 
} 
fclose($handle); 
exit; 
?> 

此代碼的作品,但與<input>例如只在這裏是我的html代碼:

<form action="add.php" method="post"> 
<textarea type="text" name="code" id="code" value="" ></textarea> 
<input type="text" name="code" id="code" value="" /><input value="Submit" tabindex="4" type="submit" > 
</form> 

它都只輸出記在<input> 文字你能幫助我請!

回答

1

您的textareainput具有相同的名稱。要解決,給他們不同的名字:

<form action="add.php" method="post"> 
    <textarea type="text" name="codetextarea" id="codetextarea" value="" ></textarea> 
    <input type="text" name="codeinput" id="codeinput" value="" /> 
    <input value="Submit" tabindex="4" type="submit" /> 
</form> 

(他們也有相同的id s,這是在XHTML甚至是非法的)

+0

謝謝!這是我很蠢的一個小問題。 – user00239123

+0

這不是愚蠢的;即使經過多年,我們都會犯明顯的錯誤。 –

0

如果你有相同的名字輸入(這個名字並沒有結束在[]),那麼PHP將忽略除其中一個以外的所有其他項(據我所知,這使它在表單處理庫中是唯一的)。給他們不同的名字。

或者,將它們重命名爲code[],PHP將使用數組填充$_POST['code']。然後循環而不是$_POST本身。

-1

以上兩個答案都有重點。此外,您不需要value屬性<textarea>,因爲textarea的值來自打開和關閉<textarea></textarea>標記內的任何值。它不同於<input>標籤。另外,打開一個文件時,應該指定另一個名爲binary的「讀取」屬性(字母b)。

所以它應該看起來像

$handle = fopen('path_to_file.extension','ab'); 

這是出於兼容性的目的

-1

試試這個

<form action="add.php" method="post"> 
<textarea name="codetextarea" id="codetextarea" value="" ></textarea> 
<input type="text" name="codeinput" id="codeinput" value="" /> 
<input value="Submit" tabindex="4" type="submit" /> 
</form> 
+0

你嘗試過嗎?因爲默認情況下,表單中的輸入類型是文本,並且您的文本區域語法強制它成爲文本,而您的值部分=「」。所以不會有任何數據 – Sun

相關問題