Jump to content
  • 0

Атрибут формы


resurs
 Share

Question

Здравствуйте

Файл say.html имеет форму:

<form name="order_form" action="send.php" method="post" name="f1" onSubmit="return pr(order_form)">
<!--……-->
</form>

Как посредством php, после отправке сообщения, сделать форму не видимой, на странице браузера.

<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}

$address = 'resurs@thebat.net';
$sub = "Мастер класс";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */
}
else
{
/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */
}
?>

1433473m.jpg

Edited by resurs
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Если у вас и форма и скрипт отправки на одной странице:

<?php
if(isset($_POST['$name']) && isset($_POST['$email']) && isset($_POST['$message']))
{
$name = $_POST['$name'];
$email = $_POST['$email'];
$message = $_POST['$message'];

$address = 'resurs@thebat.net';
$sub = "Мастер класс";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
}
else
{
//форма
}
?>

Если у вас форма и скрипт отправки на разных страницах для реализации аякс запросов:

<?php
if(isset($_POST['$name']) && isset($_POST['$email']) && isset($_POST['$message']))
{
$name = $_POST['$name'];
$email = $_POST['$email'];
$message = $_POST['$message'];

$address = 'resurs@thebat.net';
$sub = "Мастер класс";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if($verify) {//скрыть форму}
else {//сообщение об ошибке}
}
else
{
//сообщение о незаполненных полях
}
?>

ух какая картинка появилась, но она мало что нового объяснила:)

Edited by Switch74
Link to comment
Share on other sites

  • 0

то, как ты описал цель и реализацию твоей формы я уже не понимаю что и как тебе нужно


/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */

судя по этому ты знаешь как скрыть форму, что же тогда мешает это сделать?

Link to comment
Share on other sites

  • 0

то, как ты описал цель и реализацию твоей формы я уже не понимаю что и как тебе нужно


/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */

судя по этому ты знаешь как скрыть форму, что же тогда мешает это сделать?

В том то и дело что не знаю.

А то что я там накалякал, это попытка сказать как я хотел что бы было.

Данное условие обработчика изначально выглядит так:

{
echo "<p>Сообщение отправлено";
}
else
{
echo "<p>Сообщение не отправлено";
}

То есть если все нормально открывается страница с текстом «сообщение отправляется»

Если что-то не правильно открывается страница с текстом что «сообщение не отправляется»

Тут все ясно.

Я хочу переделать условие. То есть если сообщение отправляется то форма становится не видимой (мне так надо)

Атрибут style="display:none;" делает форму не видимой. Я для проверки вставлял его в тег form затем обновлял страницу и форма пропадала.

Ну как это сделать в условии обработчика не знаю.

Или нужно написать скрипт, назначить ему переменную, вставить его в тело боди, а затем переменную вставить в условие обработчика...

Edited by resurs
Link to comment
Share on other sites

  • 0

т.е. ты не знаешь как реализовать аякс запрос?..

модернизируй свою форму вот так и добавь фрэйм:


<form name="order_form" action="send.php" method="post" name="f1" target="send_form" onSubmit="return pr(order_form)">
<!--……-->
</form>
<iframe name="send_form" style="display:none;"></iframe>

в php:


<?php
if(isset($_POST['$name']) && isset($_POST['$email']) && isset($_POST['$message']))
{
$name = $_POST['$name'];
$email = $_POST['$email'];
$message = $_POST['$message'];

$address = 'resurs@thebat.net';
$sub = "Мастер класс";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if($verify) {echo "<script>parent.order_form.style.display='none';</script>";}
else {echo "<script>alert('Ошибка');</script>";}
}
else
{
echo "<script>alert('Заполните форму');</script>";
}
?>

попробуй так

Link to comment
Share on other sites

  • 0

Не…

Крутой наворот с исчезновением страницы и открытие новой страницы с сообщением. Мне кажется рисунок дает наглядно что мне нужно

У меня в боди стоят проверочные скрипты с выводом сообщений заполнены ли поля правильно введен ли емайл и так далее. Не надо дополнительных наворотов.

Условие в обработчике это условие корректной оправке сообщения, оно не проверяет заполнение полей, мне это и не надо. Данное условие необходимо переделать, чтобы пропадала форма, но не страница, без перехода на другую страницу.

Данное условие в обработчике на данный момент трактуется так:

Если сообщение отправлен и сервер его принял то выходит сообщение «Cообщение отправлено»

Если что-то с инетом или сервером то выходит предупреждающее сообщение «Сообщение не отправлено» вот это мне и не надо. Мне надо чтобы вместо этих сообщений исчезала форма, и все.

Как реализовать то что обозначено жирным ?

{

/* Имя форм: order_form */

/* Атрибут который делает форму не видимой: style="display:none;" */

}

else

{

/* Имя форм: order_form */

/* Атрибут который делает форму не видимой: style="display:none;" */

}

Edited by resurs
Link to comment
Share on other sites

  • 0

ну по сути так оно и сделано

У Вас исчезает не форма.

А наоборот реализованы еще три не нужных момента:

1. исчезает страница сайта- этого не надо

2. открывается чистая страница- этого не надо

3. появляется сообщение- это не надо

Надо чтобы «пропала» форма на странице сайта, и все.

В место этого

{

echo "<p>Сообщение отправлено";

}

else

{

echo "<p>Сообщение не отправлено";

}

Надо это

{

Форма на странице сайта исчезла, пропала, испарилась.

}

else

{

Форма на странице сайта исчезла, пропала, испарилась.

}

Данный атрибут style="display:none;" дает такую возможность. Как его реализовать?

Edited by resurs
Link to comment
Share on other sites

  • 0


if ($verify == 'true')
{
/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */
}
else
{
/* Имя форм: order_form */
/* Атрибут который делает форму не видимой: style="display:none;" */
}

ты понимаешь, что в данном варианте форма исчезнет при любом раскладе.

тебе тогда проще в обработчике pr() сделать order_form.style.display='none'

а ты вообще пробовал мой код?

не знаю что у тебя в функции pr(), но если ты делаешь отправку формы стандартным Submit(), она не должна перезагружать страницу

Link to comment
Share on other sites

  • 0

Я тоже не знаю

Вот все коды

скрипты условий файл say.html

<script language="javaScript">
<!-- javaScript
function pr (form)
{
//Если не заполнено поле
if ((form.name.value=="")||(form.email.value=="")||(form.message.value==""))
{
//Выводим грозное сообщение
alert("Все поля обязательны для заполнения!");
//Возврощаем лож
return false;
}
//Если заполнены все поля
else
{
//Возвращаем правду
return true;
}
}
// - javaScript - -->
</script>

<!——————————>

<script language="javascript">
<!-- javaScript
function checkEmail(inputvalue)
{
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
//Если емайл введен
if(pattern.test(inputvalue))
{ //Возвращаем правду
return true;
}
//Если емайл не введен
else
{
//Выводим на экран сообщение
alert("Вы неверно заполнили поле email!");
//Возвращаем ложь
return false;
}
}
// - javaScript - --></script>

форма файл say.html

<form name="order_form" action="send.php" method="post" name="f1" onSubmit="return pr(order_form)">
<p class="tx1">Введите имя:<br>
<input type="text" name="name" class="in1" onFocus="this.style.background='#efedfc'" onBlur="this.style.background='#ffffff'"></p>
<p class="tx1">Введите email:<br>
<input type="text" name="email" class="in1" onFocus="this.style.background='#efedfc'" onBlur="this.style.background='#ffffff'"></p>
<p class="tx1">Введите сообщение:<br>
<textarea name="message" rows="5" cols="35" class="ta1" onFocus="this.style.background='#edeafb'" onBlur="this.style.background='#ffffff'"></textarea>
                     
<input class="bt1" type="submit" value="Отправить" onClick="return checkEmail(document.order_form.email.value)"></p>
</form>

обработчик файл send.php

<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}

$address = 'resurs@thebat.net';
$sub = "Мастер класс";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Сообщение отправлено";
}
else
{
echo "<p>Сообщение не отправлено";
}
?>

Ваш пример я проверял работает он как я описал в предыдущем сообщении. Вообще не врублюсь зачем там фрейм.

Ладно утро ночи мудреней… Спокойной ночи.

Edited by resurs
Link to comment
Share on other sites

  • 0

по сути функции checkEmail и pr можно было бы в одном обработчике сделать их выполнение вполне нормальное страница не должна перезагружаться с моим кодом

могу только еще для надежности посоветовать через id управлять исчезновением формы

Edited by Switch74
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy