|
|
|
|
|
для: Dead_Fenix
(18.10.2005 в 21:41)
| | Тогда давайте подробностей, как вставляется функция, по какому принципу... но лучше в новой теме, вообще под новые вопросы лучше заводить новую тему - так и ответов больше будет и каши в темах меньше. | |
|
|
|
|
|
|
|
для: cheops
(18.10.2005 в 21:36)
| | Было б все так просто. Я должен вставить функцию в $msg, а функция выводит текст... | |
|
|
|
|
|
|
|
для: Dead_Fenix
(18.10.2005 в 21:13)
| | Я имею ввиду следующее
<?php
case "zakaz":
// форма для оформления заказа
echo "<form action=$PHP_SELF method=post><input type=hidden name=c value=post>".
"<input type=hidden name=SID value='$SID'>".
"<table border=0 cellpadding=5 cellspacing=2 bgcolor=#275CBD>";
for ($i=0; $i<count($post); $i++) {
echo "<tr bgcolor=#FFFFFF><td><FONT size=+1>$post[$i]</FONT></td><td><input type=text size=60 name='v[$i]'></td></tr>";
}
echo "</table><br><input type=submit value='Отправить заказ'></form>";
break;
case "post":
// генерим и отправляем анкету посетителя, где указаны данные посетителя
// и список товаров из корзины
$is_error = false;
if(!empty($_POST))
{
for ($i=0; $i<count($post); $i++)
{
if(empty($_POST['v'][$i]))
{
echo ("Заполните поле ".$post[$i]);
$is_error = true;
}
}
}
if(!$is_error)
{
$msg="Анкета посетителя:\n\n <BR>";
for ($i=0; $i<count($post); $i++) {
$msg.="$post[$i]: ".substr($v[$i],0,500)."\n <BR>";
}
$msg.="<BR> \nСписок покупок:\n\n <BR>";
$k=@array_keys($t[all]);
for ($i=0; $i<count($k); $i++) {
$id=$k[$i];
$msg.=($i+1).") {$t[$id][name]} \\ ".doubleval($t[$id][cena])." руб \\ {$t[$id][kol]} шт. \\ = ".
sprintf("%.2f",$t[$id][cena]*$t[$id][kol])." руб\n <BR>";
}
$to = "'somebody@somewhere.ru'";
$subject = "Заказ";
mail($to, $subject, $msg);
}
?>
|
>И еще, мне надо отправить, в письме, текст из функции, как вставить его(текст) в $msg
<?php
$msg .= "Текст из функции";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.10.2005 в 20:48)
| | Э... Лучше приведу часть кода
<?php
case "zakaz":
// форма для оформления заказа
echo "<form action=$PHP_SELF method=post><input type=hidden name=c value=post>".
"<input type=hidden name=SID value='$SID'>".
"<table border=0 cellpadding=5 cellspacing=2 bgcolor=#275CBD>";
for ($i=0; $i<count($post); $i++) {
echo "<tr bgcolor=#FFFFFF><td><FONT size=+1>$post[$i]</FONT></td><td><input type=text size=60 name='v[$i]'></td></tr>";
}
echo "</table><br><input type=submit value='Отправить заказ'></form>";
break;
case "post":
// генерим и отправляем анкету посетителя, где указаны данные посетителя
// и список товаров из корзины
if(!empty($_POST))
{
for ($i=0; $i<count($post); $i++)
{
if(empty($_POST['v'][$i])) exit("Заполните поле ".$post[$i]);
}
}
$msg="Анкета посетителя:\n\n <BR>";
for ($i=0; $i<count($post); $i++) {
$msg.="$post[$i]: ".substr($v[$i],0,500)."\n <BR>";
}
$msg.="<BR> \nСписок покупок:\n\n <BR>";
$k=@array_keys($t[all]);
for ($i=0; $i<count($k); $i++) {
$id=$k[$i];
$msg.=($i+1).") {$t[$id][name]} \\ ".doubleval($t[$id][cena])." руб \\ {$t[$id][kol]} шт. \\ = ".
sprintf("%.2f",$t[$id][cena]*$t[$id][kol])." руб\n <BR>";
}
$to = "'somebody@somewhere.ru'";
$subject = "Заказ";
mail($to, $subject, $msg);
?>
|
И еще, мне надо отправить, в письме, текст из функции, как вставить его(текст) в $msg | |
|
|
|
|
|
|
|
для: Dead_Fenix
(18.10.2005 в 15:13)
| | У вас как выглядите обработчик? Т.е. он ведь не срабатывает при первой загрузке - каково условия его срабатывания?
Для того, чтобы поля не сбрасывались, необходимо поместить значения из $_POST в атрибут value тэга <input>. | |
|
|
|
|
|
|
|
для: cheops
(18.10.2005 в 14:27)
| | Что-то я не совсем понял...
Ладно поставлю вопрос по другому. Допустим поле не заполнено, то требуется загрузить страницу с формой еще раз и что бы над формой появилась надпись - Заполните поле. И что бы при этом заполненные поля не сбрасывались.
Хотя если на последнее трудно реализуемо - то лучше не надо... | |
|
|
|
|
|
|
|
для: Dead_Fenix
(18.10.2005 в 13:07)
| | Конечно, введите, например, флаг $is_error, который будет сигнализировать об ошибке
<?php
$is_error = false;
if(!empty($_POST))
{
for ($i=0; $i<count($post); $i++)
{
if(empty($_POST['v'][$i]))
{
echo "Заполните поле ".$post[$i];
$is_error = true;
}
}
}
...
if($is_error) exit();
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.10.2005 в 12:32)
| | Как я понимаю exit это функция которая приостанавливает выполнение скрипта, а также обработку хтмл. Можно ли это как-то избежать? | |
|
|
|
|
|
|
|
для: cheops
(17.10.2005 в 12:32)
| | Спасибо, сработало. Но при exit не прорисовывается дизайн сайта :(
И появился еще 1 вопрос, как сделать что бы введенные поля сохранялись... т.е. если первое поле заполнили, а второе нет, не приходилось первое заполнять еще раз, или это не возможно? | |
|
|
|
|
|
|
|
для: Dead_Fenix
(17.10.2005 в 05:14)
| | Ну да у вас имя поля является массивом v[$i], поэтому следует использовать $_POST['v'][$i]. Попробуйте распечатать содержимое массива $_POST
<?php
print_r($_POST);
?>
|
а также измените !isset() на empty()
<?php
if(!empty($_POST))
{
for ($i=0; $i<count($post); $i++)
{
if(empty($_POST['v'][$i])) exit("Заполните поле ".$post[$i]);
}
}
?>
|
| |
|
|
|
|