|
|
|
| Добрый вечер .
Помогите . У меня страница на которой есть форма в которой есть разные поля . при нажатии сабмит я проверяю введенные поля . экшен формы имеет ссылку на другую строницу содержащюю непосредственно код пчп с проверками и дольнейшим сценарием . мне надо в случае проблемы неправельно заполненного поля вернуться на предыдущюю страницу вывести текст предуприждения типо заполни правельно поле и при этом чтобы заполненные поля были заполнены теми данными которые клиент ввел перед нажатием на сабмит . | |
|
|
|
|
|
|
|
для: lbgraf
(25.12.2008 в 22:09)
| | пример
файл form.php
<form>
<input name=one value="<?=$one?>">
<input name=two value="<?=$two?>">
[кнопка]
</form>
|
файл index.php
if (!isset($_POST['one']) or !isset($_POST['two'])) {$one=""; $two="";
require_once "form.php";
}
else {[проверка]
если проверка не пройдена: {[вывод ошибок];
$one=$_POST['one']; $two=$_POST['two'];
require_once "form.php";
}
если пройдена: [какие либо действия]
};
|
более подробно надо останавливаться на выводе ошибок, если форма большая и несколько методов проверки одного поля (например на пустоту и на количество символов) | |
|
|
|
|
|
|
|
для: neokortex
(25.12.2008 в 22:38)
| | а есле я в индекс пчп создал переменную в которую приравниваю текст сообщения и есле не прошла проверка то как передать эту переменную на предыдущую страницу а на ней вывесте этот текст вот таким оброзом
index.php
if(empty($_POST['f_name']))
{
$error .= ("Please insert your first name ! <br>");
}
form.php
<?php if(!empty($error))
{
echo $error ;
}
?>
это работает вообще или form.php не знает переменные определенные в index.php есле да то помогите решить и эту проблему | |
|
|
|
|
|
|
|
для: lbgraf
(25.12.2008 в 22:09)
| | Ну исле сельна нада, толуче тагда праверят форму на этай же странеце. то исть в акшен паставти её жи адрис. И тагда можна будит вирнут значении преименных так:
<input name="name" type="text" value='<?php echo $_POST['name'] ?>' />
|
| |
|
|
|
|
|
|
|
для: Николай2357
(25.12.2008 в 22:43)
| | а есле я в индекс пчп создал переменную в которую приравниваю текст сообщения и есле не прошла проверка то как передать эту переменную на предыдущую страницу а на ней вывесте этот текст вот таким оброзом
index.php
if(empty($_POST['f_name']))
{
$error .= ("Please insert your first name ! <br>");
}
form.php
<?php if(!empty($error))
{
echo $error ;
}
?>
это работает вообще или form.php не знает переменные определенные в index.php есле да то помогите решить и эту проблему | |
|
|
|
|
|
|
|
для: lbgraf
(25.12.2008 в 23:16)
| | Я же Вам написал, что оптимальным решением было бы не делить проверку и обработку по разным файлам. Если же так сильно хочется, то значения переменных придется как то передавать между ними. Есть несколько вариантов:
1. редирикт с передачей GET массива
2. использовать механизм сессий
3. самый бестолковый, но технически возможный - использовать массив COOKIE
Изучите эти темы и всё будет возможно. Только для начала возьмите несколько уроков русского языка. | |
|
|
|
|
|
|
|
для: Николай2357
(26.12.2008 в 00:08)
| | С русским действительно проблемка 12 лет не живу в россии . спасибо за помощь | |
|
|
|
|
|
|
|
для: Николай2357
(26.12.2008 в 00:08)
| | >1. редирикт с передачей GET массива
Полная хрень.
так как не известно, какой объем данных передаваемых GET-запросом.
При использовании метода GET ограничение составляет 2048 символов за вычетом количества символов в текущем пути.
>2. использовать механизм сессий
Для этого не к чему.
>3. самый бестолковый, но технически возможный - использовать массив COOKIE
Ну это вообще полная хрень. | |
|
|
|
|
|
|
|
для: AcidTrash
(26.12.2008 в 20:36)
| | А ну ка предложите не хрень. Вам наверное известны более другие способы... Было бы очень интересно узнать. Написать, что хрень - ума много не нужно. С наступающим, к стати. | |
|
|
|
|
|
|
|
для: Николай2357
(27.12.2008 в 15:51)
| | К примеру простой вариант. Если надо чтобы, не потерялись значения других полей.
<?php
if($_POST){
if(!$_POST[field])
print "error field";
if(!$_POST[field1])
print "error field1";
}
?>
<form method=POST>
<input type=text name=field value="<? print $_POST[field]; ?>">
<input type=text name=field1 value="<? print $_POST[field1]; ?>">
<input type=submit value="ok">
</form>
|
P.S. Зачем в данном случае делить форму и обработчик по разным файлам. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 20:58)
| | От страницы к странице таскать за собой значения полей? | |
|
|
|
|
|
|
|
для: sim5
(28.12.2008 в 21:03)
| | Это вы мне?
Насколько понятно, это обработка в одном файле. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 21:09)
| | Так вопрос, вроде бы как сохранить из ранее введенного при возрате на страницу. Или тут уже все так запутано? :) | |
|
|
|
|
|
|
|
для: sim5
(28.12.2008 в 21:27)
| | Да ничего не запутано, Просто тупо если, какое то обяз. поле не заполнено, то вывести пользователю, что это обяз. поле не заполнено, и вывести те данные которые он ввел в другие поля, дабы не вводить все заново. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 21:09)
| | >Насколько понятно, это обработка в одном файле.
Меня учили никогда не говорить в беседе слов хрень, чушь и им подобных. Дабы не выглядеть бледно. Так всё таки есть более другой способ передачи значений между страницами, которые не хрень? Я вот знаю еще один - записать все на временное хранение. Но даже вслух такое произнести не решаюсь)))) | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 21:35)
| | Если бы мне надо было реализовать назад/вперед при пошаговом поучении данных, то я бы использовал массив в сессии. | |
|
|
|
|
|
|
|
для: sim5
(28.12.2008 в 21:44)
| | Ну как бы я и предложил... Для маленькой формы, допустим логин-пароль-мыло, вполне можно обойтись и GET массивом, для формы посеръёзнее лучше конечно сессии, и для расширения кругозора прицепом про куки... | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 21:51)
| | Для маленькой формы... Тут вообще некуда взвращаться ) Я понимаю (принимаю) возврат назад/вперед только в случаях, например, поэтапной регистраци или оформления товара, когда действительно есть необходимость сохранения промежуточных данных. Проще и удобней (на мой взгляд) это сделать массивом - на любом шаге этапа, при любом возврате легко можно получить данные шага. А вот зачем возвращаться, и главное куда, при наличии одной простенькой формы... | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 21:35)
| | >Меня учили никогда не говорить в беседе слов хрень, чушь и им подобных.
Хм, и кто учил? По крайней мере слово "чушь" довольно литературное. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 21:46)
| | А я не про литературу, а про то, что можно не разобравшись навешать ярлыков. Ведь это же приговор - хрень, и никакой апеляции. Особенно, когда она полная ))) | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 21:53)
| | >про то, что можно не разобравшись навешать ярлыков. Ведь это же приговор - хрень, и >никакой апеляции
Да вот как раз, все что вы предложили по теме абсолютно не нужно.
Это делается в одном файле. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 22:01)
| | Цитата:
>а есле я в индекс пчп создал переменную в которую приравниваю текст сообщения и есле не прошла проверка то как передать эту переменную на предыдущую страницу а на ней вывесте этот текст вот таким оброзом
Вторая
>Я же Вам написал, что оптимальным решением было бы не делить проверку и обработку по разным файлам. Если же так сильно хочется, то | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 22:07)
| |
Это делается в одном файле.
|
Наверно для автора
P.S. Приобретаем гемморой. | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 22:10)
| | Вот с этим не могу не согласится)))) | |
|
|
|
|
|
|
|
для: AcidTrash
(28.12.2008 в 20:58)
| | А я разве не так написал? Вопрос был в том, что обработчик в другом файле. | |
|
|
|
|
|
|
|
для: lbgraf
(25.12.2008 в 22:09)
| | работает стопроцентно!
<a href="javascript:history.go(-1);">Вернуться к форме</a>
|
| |
|
|
|
|
|
|
|
для: Рома
(28.12.2008 в 02:40)
| | Совсем не стопроцентно. В эксплорере не сработает. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 05:42)
| | у меня работает со второго клика, | |
|
|
|
|
|
|
|
для: Рома
(28.12.2008 в 20:13)
| | И данные в форме сохраняются? | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 20:26)
| | ну да | |
|
|
|