2014-12-10 4 views
1

Мне нужно назначить текст тега textarea переменной php. Я пытаюсь сделать это следующим образом:Не удается передать значение textarea переменной php

<form method="GET"> 
     <textarea rows="4" cols="50" name="query">some string</textarea> 
</form> 

<?php 
    $query = $_REQUEST['query']; 
    echo $query; 
?> 

Но я получаю

Notice: Undefined index: query in index.php on line _ 

Что я сделал не так? Благодарю.

+0

Вы также можете использовать AJAX, чтобы принудительно отправить сообщение своей формы и восстановить значение, которое предположит, что ваш PHP-код будет расположен в другом файле для вызова. –

+1

sidenote: не забудьте выбрать ответ ниже, если это поможет вам любезно нажать на галочку в левой части ответа http://meta.stackexchange.com/a/5235 – Ghost

ответ

1

Вы должны использовать это:

+2

Танки много! Исправлена – Daria

4

Поскольку вы используете весь код внутри одной и той же страницы, это нормально, когда вы бросаете это предупреждение при загрузке страницы.

Используйте empty() с условным обозначением для этого элемента формы. кнопку

if(!empty($_REQUEST['query'])){ 
$query = $_REQUEST['query']; 
} 

Plus, в сочетании с empty(), используйте isset() с именованным представить, как я изложил ниже.

if(isset($_REQUEST['submit']) && !empty($_REQUEST['query'])){ 

Плюс, вам нужно будет добавить кнопку какого-либо типа для отправки данных.

Либо <button type="submit" name="submit">Submit</button>

или входной тип <input type="submit" value="Submit" name="submit">


  • Формы по умолчанию «я», если действие в файл нет.

Такие, как ваш <form method="GET">

В противном случае, разделить вашу форму и PHP друг от друга, и использовать <form method="GET" action="handler.php">

, имеющий форму HTML, как один файл, а PHP в другой.

Было бы лучше использовать empty() и isset() для обоих случаев.

+0

Yup - это в основном связано к quirk '