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

Как какое, конечно поля, в которое пользователь вводит имя домена. Но не стоит этого делать таким путем:

<input class="button-test" onclick="window.open("domain.php?domain=" + значение_из_формы, "имя", " style="width:600px; height:700px")
type="submit" value="Проверить">

и вот таким:

<input type="button" value="Заказать домен" class="button-domain" onClick="window.open('http://panel.webvm.ru/OFFERTA/offerta_add_select_type.khtml','_blank')" />

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

Уж коли такая любовь к окнам, то нужно же этим процессом как-то управлять, иначе есть риск запутаться пользователю в этих окнах. Лучше обрабатывать событие onsubmit формы, назначив функцию обработчика, и передавая в нее форму:

<form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" name="formdomain" id="domain" onsubmit="return function_name(this)"> - по умолчанию форма отправляется методом GET, а ID для формы здесь вряд ли потребуется. А в функции function_name(f):

function_name(f) {
    var e = "", url;
    //если проверки занятости, то проверить заполнено ли поле
    if(f.name=='formdomain') {
       var v = f.domain.value.replace(/^\s+|\s+$/, ''; //это значение поля ввода, в котором нужно вырезать крайние пробелы, и только затем проверить и отправлять
       if(!v) e = "Заполните поле!"; //ошибка
       else url = f.action + "?domain=" + v;
       //и это только минимум, а ведь не каждый символ разрешен для домена, то есть и это еще надо проверять
    }
    //если нет ошибок в форме
    //то нужно сделать неактивными кнопки их отправки
    //так как каждый запрос, это время, а не мгновенная реакция сервера, и пользователь может сколько угодно раз отправлять форму
    return false; //блокировка отправки формы 
}


У вас в одной форме можно породить два окна, поэтому вполне возможен бардак. А чтобы его исключить, заказать домен можно будет только в том случае, если проверка занятости вернула добро, то есть предполагается диалог предварительный, и такой диалог, учитывая проверки на доступные символы, вести на основе нового окна, это кошмар. Ajax здесь нужен.

Обработчик же формы на сервере должен быть в самом начале кода, если запросы к той же странице, что выдает и весь ее контент. Вы же упорно его вставляете в общий html-поток, хотя какова структура кода должна быть, я показывал.
Ответить с цитированием