|
|
|
| Добрый день!
Имеется к примеру форма:
<html><body>
<form action="../step_2/index.php" name=web_order method=post>
Имя: <input type=text name="name"><br>
<a onclick="document.web_order.reset(); return false;" href="#"><IMG src="../clear.gif" align=absMiddle border=0 alt="Отчистить форму"></a>
<input type=image src=../next.gif align="absmiddle" alt="Далее...">
</form>
</body></html>
|
Я так понимаю, это можно реализвать, если использовать вывод формы на страницу require("form.inc"). Каким образом можно сделать проверку на заполненность полей перед тем, как передать данные в "../step_2/index.php"? Чтобы при не правильном заполнении под полем выводилась к примеру подсказка в виде текста красного цвета? И при прогрузке странички в первый раз сразу все поля не подсвечивалиь? | |
|
|
|
|
|
|
|
для: bestel
(14.02.2007 в 10:44)
| | В этом случае HTML-форму и обработчик объединяют в один файл
<?php
$error = "";
if(!empty($_POST))
{
// Проверка на заполнение
...
// Если проверка не удалась $error - не пустая
if(empty($error))
{
// Обработчик
...
// Переадресация на страницу, сообщающую об
// успешной обработки данных
...
exit();
}
}
// Если имеются ошибки выводим их
if(!empty($error)) echo $error;
?>
<html-форма>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.02.2007 в 13:02)
| | cheops, спасибо тебе!
Файл: index.php
<form action="index2.php" name=web_order method=post>
<?
# Вывод заголовков
require("header.inc");
$error = "";
if(!empty($_POST))
{
// Проверка на заполнение
if(empty($name)) $error .= "Не введено имя!<br />\n";
// Если проверка не удалась $error - не пустая
if(empty($error))
{
// Обработчик
$name=htmlspecialchars($name);
$name=ereg_replace("\n"," ", $name);
// Переадресация на страницу, сообщающую об
// успешной обработки данных
...
exit();
}
}
// Если имеются ошибки выводим их
if(!empty($error)) echo $error;
# Вывод формы
echo "<tr><td align=\"center\">";
require("form_1.inc");
?>
<!--Вывод JavaScript, кнопка "Отчистить форму" -->
<a onclick="document.web_order.reset(); return false;" href="#"><IMG src="../clear.gif" align=absMiddle border=0 alt="Отчистить форму"></a>
<?
# Кнопки
echo "<input type=\"image\" src=\"../next.gif\" align=\"absmiddle\" alt=\"Далее...\"></td>\r\n";
?>
|
Файл: form_1.inc
Имя: <input type=text name="name"><br>
|
На сколько я понимаю сначала данные надо отправить для проверки на эту странцу, можно это сделать: <form action='".$_SERVER['PHP_SELF']."' method='post'> ; ну а после проверки эти данные надо передать в index2.php. Как это реализовать:
// Переадресация на страницу, сообщающую об
// успешной обработки данных
...
|
??? | |
|
|
|
|
|
|
|
для: bestel
(14.02.2007 в 14:58)
| | А так и пишите
<form action="index2.php" name=web_order method=post>
<?
# Вывод заголовков
require("header.inc");
$error = "";
if(!empty($_POST))
{
// Проверка на заполнение
if(empty($_POST['r_name'])) $error = "Не заполнено поле \"Имя\"";
// Если проверка не удалась $error - не пустая
if(empty($error))
{
// Обработчик
...
// Переадресация на страницу, сообщающую об
// успешной обработки данных
...
exit();
}
}
// Если имеются ошибки выводим их
if(!empty($error)) echo $error;
# Вывод формы
echo "<tr><td align=\"center\">";
require("form_1.inc");
?>
<!--Вывод JavaScript, кнопка "Отчистить форму" -->
<a onclick="document.web_order.reset(); return false;" href="#"><IMG src="../clear.gif" align=absMiddle border=0 alt="Отчистить форму"></a>
<?
# Кнопки
echo "<input type=\"image\" src=\"../next.gif\" align=\"absmiddle\" alt=\"Далее...\"></td>\r\n";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(15.02.2007 в 11:29)
| | Как сделать, чтоб скрипт сам отправил проверенные данные на следуйщую страницу index2.php?
<?
// Сохранение данных в скрытом поле
// и отсылка их на страницу index2.php
echo "<form action=\"../step_2/index.php\" name=\"web_order\" method=\"post\">";
echo "<input type=\"hidden\" name=\"name\" value=\"name\">";
exit(); ?>
|
| |
|
|
|
|
|
|
|
|
для: cheops
(15.02.2007 в 16:19)
| | Я понял,... пытаюсь воплатить это в жизнь:
Файл index1.php
<form action="index1.php" name=web_order method=post>
<?
# Вывод заголовков
require("header.inc");
$error = "";
if(!empty($_POST))
{
// Проверка на заполнение
if(empty($name)) $error .= "Не введено имя!<br />\n";
// Если проверка не удалась $error - не пустая
if(empty($error))
{
// Обработчик
$name=htmlspecialchars($name);
$name=ereg_replace("\n"," ", $name);
// Переадресация на страницу, сообщающую об
// успешной обработки данных
// передаваемые данные
$name = "$_POST[name]";
$hostname = "www.sm.com";
$fp = fsockopen($hostname,80);
// формируем строку с отправляемымы данными
$data = "name=".urlencode($name)."\r\n\r\n";
$headers = "POST /order/order/web/metod/test_bestel/step/index2.php HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
// отправляем
fwrite($fp,$headers.$data);
// читаем один
// байт или все содержимое:
while(!feof($fp))
echo fread($fp,1024);
fclose($fp);
exit();
}
}
// Если имеются ошибки выводим их
if(!empty($error)) echo $error;
# Вывод формы
echo "<tr><td align=\"center\">";
require("form_1.inc");
?>
<!--Вывод JavaScript, кнопка "Отчистить форму" -->
<a onclick="document.web_order.reset(); return false;" href="#"><IMG src="../clear.gif" align=absMiddle border=0 alt="Отчистить форму"></a>
<?
# Кнопки
echo "<input type=\"image\" src=\"../next.gif\" align=\"absmiddle\" alt=\"Далее...\"></td>\r\n";
?>
|
Каким образом сделать, чтобы после того как данные передались посредством сокета, в страничку index2.php, она открыылась и польз. мог продолжить заполнение формы???
как в страничке index2.php получить данные и закрыть сокет? | |
|
|
|
|
|
|
|
для: bestel
(15.02.2007 в 18:55)
| | Решели я уйти от решения сего вопроса, при помощи сокетов.
Вот, что вышло, форма многостраничная выполняется на одной странице...
<?
# Запуск обработчика
require("errors.inc");
# Вывод формы
echo "<tr><td align=\"center\">";
require("form_1.inc");
?>
<form action="index.php" name=web_order method=post>
<!--Вывод JavaScript, кнопка "Отчистить форму" -->
<a onclick="document.web_order.reset(); return false;" href="#"><IMG src="clear.gif" align=absMiddle border=0 alt="Отчистить форму"></a>
<?
# Кнопки
echo "<input type=\"image\" src=\"next.gif\" align=\"absmiddle\" alt=\"Далее...\"></td>\r\n";
?>
|
Файл form1.inc
Имя: <input type=text name="name"><br>
<font color="red"> <? if(!empty($name_error)) echo $name_error; // Если имеются ошибки выводим их ?> </font>
фамилия: <input type=text name="surname"><br>
<font color="red"> <? if(!empty($surname_error)) echo $surname_error; // Если имеются ошибки выводим их ?> </font>
Пол:
<input type=radio name=pol value=1>М
<input type=radio name=pol value=2>Ж<br>
|
Файл errors.inc
<?
$name_error = "";
if(!empty($_POST))
{
// Проверка на заполнение
if(empty($name)) $name_error .= "Пожалуйста, введите имя!<br />\n";
// Если проверка не удалась $error - не пустая
if(empty($name_error))
{
// Обработчик
$name=htmlspecialchars($name);
$name=ereg_replace("\n"," ", $name);
// Переадресация на страницу, сообщающую об
// успешной обработки данных
if (@"$_POST[pol]"==="1") //Определение сценрария в зависимости от выбора занчения перменной pol
{ include "form_2.1.inc";} //
elseif(@"$_POST[pol]"==="2") //
{ include "form_2.2.inc";}
exit();
}
}
?>
<?
$surname_error = "";
if(!empty($_POST))
{
// Проверка на заполнение
if(empty($surname)) $surname_error .= "Пожалуйста, введите фамилию!<br />\n";
// Если проверка не удалась $error - не пустая
if(empty($surname_error))
{
// Обработчик
$surname=htmlspecialchars($surname);
$surname=ereg_replace("\n"," ", $surname);
// Переадресация на страницу, сообщающую об
// успешной обработки данных
if (@"$_POST[pol]"==="1") //Определение сценрария в зависимости от выбора занчения перменной pol
{ include "form_2.1.inc";} //
elseif(@"$_POST[pol]"==="2") //
{ include "form_2.2.inc";}
exit();
}
}
?>
|
Каким образом сделать, чтобы при вводе данных не полность, пользователь возвращался к предведущей форме и значения корректно введеных полей не обнулялись? А то при таком коде, если пользователь недозаполнил какое-то поле, открывается заново index.php с подсветкой всех полей. | |
|
|
|