Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > вывод результатов в текущую страницу


Автор: magnet27 27.9.2009, 15:07
есть форма, в ней текстовое поле и кнопка, при нажатии на кнопку скрипт ищет в базе значение введенное в поле, и выводит результат "найден/не найден" на новой странице.
вопрос - как вывести результат не на новой странице, а в той же где было поле и кнопка ?

Автор: BlackRu 27.9.2009, 15:33
Код
<form action=mypage.php? method=post>
<input type=text name=name>

Оно?

Автор: NLspieler 27.9.2009, 15:48
Ну примерно так:


Код

//форма html
<form method="post">
<input type="text" name="name">
<input type="submit">
</form>

<?php
if (isset($_POST['name']))     
{
      //Запрос к базе, обработка результата, выдача. 
}
?>





Автор: magnet27 27.9.2009, 16:21
как я понимаю не использовать form action, код формы и php объединить в одном файле, использовать метод post и при нажатии на кнопку php код будет выполняться ?

Автор: Ипатьев 27.9.2009, 16:48
код выполняется не при нажатии на кнопку.
а при выполнении файла.
то есть - всегда.

в action надо поставить ту страницу, на которой хотим видеть результаты. это очень просто. какую хотим - такую и подставляем.  так формы устроены. что укажем - то и покажет. 
поэтому если хотим хотим ту же самую страницу, то ее в action и надо подставить. 

Автор: TerminalSoul 27.9.2009, 17:22
А ещё лучше конечно использовать AJAX, тогда точно можно будет разделить страничку вывода и скрипт обработки запроса)
Всё таки всегда лучше html-код и php-код разделять, чтобы не путаться.

Автор: magnet27 27.9.2009, 17:34
я наверное делаю что то не так..
вот код файла test.php, в action ставлю его же, при вводе текста в поле и нажатии кнопки страничка просто обновляется и ничего не выводит, посмотрите плз где ошибка
код запроса и обработки точно рабочий, если ставить в action другой файл и в него поместить php код, то все прекрасно работает, только результат выводится на новой странице, а мне нужно выводить его где нибудь возле кнопки

Код

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<form method="post" action="test.php">
      <input type="text" name="login">
      <input name="submit" type="submit" value="Проверить имя">
</form>

<?php
if (isset($_POST['login']))     
{
/* Соединение, выбор БД */

$con = @mysql_connect("localhost", "root", "")
               or die ("Соединение не установлено... попробуйте позже");
          $con1 = @mysql_select_db("golos")
             or die ("Соединение не установлено...");

/* Выполнение SQL запроса */ 

$login=$_POST['login'];

$query = "SELECT * FROM users WHERE login='$login'";

$res = mysql_query($query) or die("Запрос ошибочный");
if ( mysql_num_rows( $res ) == 1 ){
print"логин занят";
} else{
print"логин свободен";
}

mysql_free_result($res);

mysql_close($con);
}

?>
</body>
</html>

Автор: Ипатьев 27.9.2009, 17:41
Ошибка может быть где угодно.
И не обязательно в тексте.
Поэтому ошибки ищут не глазами, а руками.

раз ничего не выводится - значит, не работает условие.
выводите через var_dump $_POST и $_POST['login'] для начала.
включите отображение ошибок

Автор: capitan 27.9.2009, 17:41
Для начала нужно посмотреть, что вообще передается.
Код

<form method="post" action="test.php">
      <input type="text" name="login" value="">
      <input name="submit" type="submit" value="Проверить имя">
</form>

Код

if(!empty($_POST)) {
   var_dump($_POST);
  die;
}

Автор: Ипатьев 27.9.2009, 17:42
странно, зачем при отладке условия все равно ставить условие

Автор: magnet27 27.9.2009, 18:48
в том файле где и форма и php, делаю следующий код, опять же ничего не вижу, страница обновляется и все
Код

var_dump ($_POST);
var_dump($_POST['login']);


если делать через два файла (в одном форма в другом php код), 
получается следующее

var_dump ($_POST); результат - NULL
var_dump($_POST['login']); результат - string(6) "qwerty", то есть то что было введено..

Автор: Ипатьев 27.9.2009, 19:05
Цитата(magnet27 @  27.9.2009,  18:48 Найти цитируемый пост)
в том файле где и форма и php, делаю следующий код, опять же ничего не вижу,

а где код-то? внутри условия? 
а вообще хоть какой-то РНР код в нем работает? echo 11111;?
Цитата(magnet27 @  27.9.2009,  18:48 Найти цитируемый пост)
var_dump ($_POST); результат - NULL
var_dump($_POST['login']); результат - string(6) "qwerty",

вот это очень странно
я бы даже сказал, такого не может быть

Автор: youri 28.9.2009, 00:13
у меня твоя страничка работает... выложи в инете и дай ссылку

Автор: BlackRu 29.9.2009, 19:49
У меня тоже работает. Может, что-нибудь с php.ini намудрили?
php вообще установлен? smile 
Т.е. веб-сервер, где тестируется скрипт, сконфигурирован с php?

Автор: Gold Dragon 30.9.2009, 07:21
Цитата(BlackRu @  29.9.2009,  20:49 Найти цитируемый пост)
php вообще установлен?

Код

<?php
echo "УРА!!! РАБОТАЕТ";
?>


 smile 

а может поставить в начало это? А вдруг..
Код

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



Автор: magnet27 2.10.2009, 11:22
все заработало , после перезагрузки компа. похоже что нужно было перезагрузить денвер smile спасибо всем за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)