2010-04-26 4 views
0

получил небольшую проблему, этот код

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<?php 
... 
echo '<input name="textfield" type="text" id="textfield" value="Roger" />'; 
echo 'Hello, '.$_POST['textfield'].'<br>'; 
... 
?></p> 
</form> 

должен повторить из «Привет, Роджер», а Роже значение по умолчанию, но он выдает только «Привет, " и ничего больше. Какие-либо предложения?

Редактировать: да, есть форма.

Спасибо!

+0

Я полагаю, что есть форма, не так ли? – joanballester

+0

Нам нужно увидеть больше кода. Изучите страницу в Firebug, чтобы обеспечить отправку данных POST. –

+0

Можем ли мы с уверенностью предположить, что второй оператор эха выполняется на странице страницы, содержащей первую? –

ответ

7

Вы вторя текстовое поле и в то же время надеясь получает значение, которое не возможно.

echo '<input name="textfield" type="text" id="textfield" value="Roger" />'; 
echo 'Hello, '.$_POST['textfield'].'<br>'; 

Вам необходимо сначала отправить форму с методом, установленным на post, и только после этого вы можете получить его значение.

Пример:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
... 
<input name="textfield" type="text" id="textfield" value="Roger" /> 
... 
<input name="submit" type="submit" id="submit" value="submit" /> 
</form> 

PHP

if (isset($_POST['submit'])) 
{ 
    echo 'Hello, '.$_POST['textfield'].'<br>'; 
} 
+0

Спасибо, человек! Теперь это работает. но есть ли способ, чтобы php выбрал значение по умолчанию (или новое значение после его ввода), не нажимая кнопку «отправить»? –

+0

@ user296516: Вы можете получить значение только при отправке формы. Если вы имели в виду без отправки формы, для этого вы можете использовать javascript, но он не будет доступен для PHP. – Sarfraz

+0

Да, скажите 'if (! Isset ($ _ POST ['submit'])) {echo 'Hello, Roger.'; } ' –

3

Попробуйте print_r($_POST) или var_dump($_POST), чтобы узнать, есть ли какие-либо данные POST.

Редактировать: Вы указали POST как метод отправки в теге формы? Вы отправляете форму? Пожалуйста, покажите весь <form> -Tag.

+1

+1, var_dump()! –

0
  • Проверка CSS (это скрытый ..? =
  • Проверьте источник страницы (это появится поле ввода?)
  • не забудьте завернуть вход в форме, если вы хотите отправить его обратно на ту же страницу.
2

Если это именно ваш код, то проблема заключается в том, что $ _POST еще не установлено, так как ни одна из форм не представляется ,

0

Мое предположение, что сервер не выделяет $_GET и/или $_POST. Вы можете проверить это в конфигурации php.

Посмотрите, можете ли вы получить доступ к данным через $_REQUEST, которые должны унифицировать получение и публикацию данных.

+1

Но не используйте' $ _REQUEST' в производстве, только для отладки. Плохая практика - использовать его в живых системах. –

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