2013-07-30 2 views
1

Я хочу знать, как заставить пользователя вводить текст внутри текстового поля, а затем, когда он нажимает кнопку сохранения, текст, который он напечатал, сохраняется внутри файла, это мой код:Как отправить текст из текстового поля в файл

<?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

Ваши textarea и input имеют то же имя. Для того, чтобы исправить, дать им разные имена:

<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 с, что даже нелегальный в XHTML)

+0

Спасибо! Это была небольшая проблема, я глуп. – user00239123

+0

Это не глупо; все мы делаем очевидные ошибки, даже после многих лет. –

0

Если у вас есть входы с тем же именем (и это имя не заканчивается в []), тогда PHP проигнорирует все, кроме одного из них (насколько я могу судить, это делает его уникальным среди библиотек обработки форм). Дайте им разные имена.

В качестве альтернативы переименуйте их в code[] и PHP заполнит $_POST['code'] массивом. Затем петля над , что массив вместо $_POST себя.

-1

Два ответа выше моего имеют смысл. Кроме того, вам не нужен атрибут value в <textarea>, потому что значение textarea исходит из того, что находится в открытом и закрытом <textarea></textarea> тегах. Он отличается от тегов <input>.

Кроме того, при открытии файла вы должны указать другое свойство чтения, называемое двоичным (буква 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

Пробовал? потому что по умолчанию тип ввода в форме является текстом, а синтаксис текстовой области заставляет его становиться текстом, а ваше значение part = "". Таким образом, данных не будет – Sun

Смежные вопросы