Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический title, Форма обратной связи и title 
:(
    Опции темы
Sicky
Дата 13.8.2015, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.6.2015

Репутация: нет
Всего: нет



Тут такая проблема, есть скрипт обратной связи:
Код

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>


<?php
if(!empty($_POST['phone'] ))
{
$to = "почта";
$from = 'почта';
$subject = "Проверка почты";
$message = 'Имя: '.$_POST['name'].'; Телефон: '.$_POST['phone'].';';
$headers = "Content-type: text/html; charset=UTF-8 \r\n";
$headers .= "From: <почта>\r\n";
$result = mail($to, $subject, $message, $headers);

    if ($result){ 
        echo "<span>Cообщение успешно отправленно. Пожалуйста, оставайтесь на связи</span>";
    }
    else{
        echo "<span>Cообщение не отправленно. Пожалуйста, попрбуйте еще раз</span>";
    }
}
else {
echo "<span>Обязательные поля не заполнены. Введите номер телефона</span>";
}
?>
    echo '<script>document.title = "";</script>';

</body>
</html>

Как сделать чтобы при том или ином результате выполнения выводились разные тайтлы для страницы?
Пробовал сделать так:
Код

if ($result){ 
        echo "<span>Cообщение успешно отправленно. Пожалуйста, оставайтесь на связи</span>
        <script>document.title = "Cообщение успешно отправленно.";</script>
        ";
    }

Но при этом скрипт не выполняется. Выпадает ошибка из яваскрипта.

Вообще выполняется все так:
Код

<button class="waves-effect waves-light btn btn-larger" type="button" onclick="AjaxFormRequest('messegeResult', 'formMain', 'form1.php')">Позвоните мне!</button>

Код

function AjaxFormRequest(result_id,formMain,url) {
                        jQuery.ajax({
                            url:     url,
                            type:     "POST",
                            dataType: "html",
                            data: jQuery("#"+formMain).serialize(), 
                            success: function(response) {
                            document.getElementById(result_id).innerHTML = response;
                        },
                        error: function(response) {
                        document.getElementById(result_id).innerHTML = "<p>Возникла ошибка при отправке формы. Попробуйте еще раз</p>";
                        }
                     });

                     $(':input','#formMain')
                        .not(':button, :submit, :reset, :hidden')
                        .val('')
                        .removeAttr('checked')
                        .removeAttr('active')
                        .removeAttr('selected');
}

PM MAIL   Вверх
s1lver
Дата 27.8.2015, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



А вы хотите это на PHP или JavaScript сделать?


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
rMaveric
Дата 4.9.2015, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: 3
Всего: 6



Добрый. smile

Самый простой вариант в твоем случае, и скорее всего правильный, это сперва выполнить обработку формы, отправить письмо, и только после этого начать формировать таблицу.

Получится что-то такое.

Код

<?php
if(!empty($_POST['phone'] ))
{

$to = "почта";
$from = 'почта';
$subject = "Проверка почты";
$message = 'Имя: '.$_POST['name'].'; Телефон: '.$_POST['phone'].';';
$headers = "Content-type: text/html; charset=UTF-8 \r\n";
$headers .= "From: <почта>\r\n";
$result = mail($to, $subject, $message, $headers);
    if ($result){ 
        $title = "Все ОК. Письмо улетело";
        $content = "<span>Cообщение успешно отправленно. Пожалуйста, оставайтесь на связи</span>";
    }
    else{
        $title = "Ошибка. Что-то пошло не так";
        $content =  "<span>Cообщение не отправленно. Пожалуйста, попрбуйте еще раз</span>";
    }
}
else {
$title = "Ошибка. Не заполнено поле";
$content = "<span>Обязательные поля не заполнены. Введите номер телефона</span>";
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo  $title ; ?></title>
<meta charset="UTF-8">
</head>
<body>
<?php echo  $content ; ?>
</body>
</html>


Также ты можешь не формировать переменные $title и $content, а создать флаговые переменные, которые будут хранить статус отправки твоей формы, есть ли ошибка или нет, и некоторые коды ошибок, и на основе этих данных уже формировать вывод в теле документа. А можно еще... можно реализовать большим кол-вом способов. smile Но пока пробуй простые.

А если же тебе требуется на JS менять тайтл smile, То тебе в другую ветку форума. smile


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0797 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.