Показать сообщение отдельно
  #10 (permalink)  
Старый 07.02.2018, 22:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Я вас же спрашиваю об отправке формы, а вы кодом отвечаете. Вопрос отношения к JS не имеет, не в этом разделе его надо было задавать.

header('location: http://f0184040.xsph.ru/#openModal');
и далее код, это уже неверно, обязательно нужно делать выход - exit; после передачи заголовка.

Но что это за заголовок? А это что означает - action="forms.php" - получается попадаем на эту страницу, которая отправляет сообщение.? Как это, если не видно асинхронных запросов, а значит с этой страницы либо уйти на другую, либо нет смысла в таком перенаправлении.

echo "location.href = '#openModal'"; - а это попытка тогда чего? Во-первых работать не будет, ибо это просто строка, а не js-код. Во-вторых как одним значением можно определить два состояния - первый заголовок с #openModal, и вторая попытка тоже с #openModal?

Вообще по уму должно быть так - страница должна отвечать только на POST запросы, то есть если вызов ее будет через адресную строку, то либо перенапрваление, либо выход и ..., решайте.

if($_SERVER['REQUEST_METHOD']=='POST') {
    //основной код
    //Здесь же и перенаправления, и если #openModal запускает на клиенте окно сообщений, и нужно передать их два,
    //то это либо два перехода по разным адресам, либо на один и тот же адрес, 
    //но с передачей дополнительного параметра определяющего текст сообщения.
    //Если такой параметр нежелателен в адресе, можно передать через сессию.
    //Не самый лучший вариант и разумнее ограничится  одним сообщением - результатом "принято и свяжемся".
    //А вот если форма отправляется асинхронным запросом (ajax), тогда возможны любые диалоги 
    //и передавать хеш в адресе не потребуется     
} //else ...


Надеюсь правильно понял, чего делается.
Ответить с цитированием