я вам уже говорил что при подключении библиотек jq у сайта пропадает скролл! в это форме есть javascript который отвечает за выделения всех чек боксов.
мне просто не нравится как сейчас выдает результат проверки. |
Ну так покажите код свой, что там за скролл, подскажут причину.
Ну если вы не знаете ну практически ничего, и как сделать абсолютное позиционирование чтобы слой "типа окно" показать, и с JS проблемы, используйте хоть JQ, он во многом "за вас думать будет", и сделать плавный скролл на нем тоже не проблема. |
скрол не мой скрипт, а разработчика шаблона joomla 3
|
Значит используйте это, если не можете разобраться сами с джумлой.
|
Вы писали:
Цитата:
<? set_time_limit(0); require_once("doain.php"); ?> <!DOCTYPE html> <head> <title></title> <meta charset="utf-8"> <style> .modalDialog { position: fixed; font-family: Arial, Helvetica, sans-serif; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,0.8); z-index: 99999; -webkit-transition: opacity 400ms ease-in; -moz-transition: opacity 400ms ease-in; transition: opacity 400ms ease-in; display: none; pointer-events: none; } .modalDialog:target { display: block; pointer-events: auto; } .modalDialog > div { width: 400px; position: relative; margin: 10% auto; padding: 5px 20px 13px 20px; border-radius: 10px; background: #fff; background: -moz-linear-gradient(#fff, #999); background: -webkit-linear-gradient(#fff, #999); background: -o-linear-gradient(#fff, #999); } .close { background: #606061; color: #FFFFFF; line-height: 25px; position: absolute; right: -12px; text-align: center; top: -10px; width: 24px; text-decoration: none; font-weight: bold; -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; -moz-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000; } .close:hover { background: #00d9ff; } </style> </head> <body> <table> <tr> <div class="dom-fon"> <form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="domain" id="domain"> <table> <tr> <td class ="table_name">Введите имя домена:</td> <td><input class="name-dom" style="height:38px" name="domain" type="text" /></td> <td><input class="button-test" onclick="location.href='#openModal'" type="submit" value="Проверить"></td> <div id="openModal" class="modalDialog"> <div> <a href="#close" title="Закрыть" class="close">X</a> <p> <? if(isset($_GET["domain"]) && strlen($_GET["domain"])>0 && isset($_GET["TLD"]) && is_array($_GET["TLD"])) { $target=$_GET["domain"]; $whois=new whois(); foreach($_GET['TLD'] AS $tldz) { echo($target.$tldz." - "); $whois->zonelookup($target.$tldz); if($whois->ERROR==0) { if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1) { echo("занят,") ; }else { echo("свободен,"); } }else { echo("ошибка запроса"); } echo('<br style="display:inline">'); } } ?> </p> </div> </div> </tr> </table> <table> <tr> <td class ="table_butt-1"><input type="button" onClick="sel('checked')" value="Выбрать все" /></td> <td class ="table_butt-2"><input type="button" onClick="sel()" value="Снять все" /></td> <td><input type="button" value="Заказать домен" class="button-domain" onClick="window.open('http://panel.webvm.ru/OFFERTA/offerta_add_select_type.khtml','_blank')" /></td> </tr> </table> <table class="prise-domain-teble"> <tr class ="table_string"> <td class ="table_cell-1"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".ru" id="11"><label for="11">.ru</label></p> <p class="price-yer">Цена 1 год <br /> 90 Р</p> <p class="price-too">Продление на год 90 Р<br></p></td> <td class ="table_cell-2"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".рф" id="12"><label for="12">.рф</label></p> <p class="price-yer">Цена 1 год 100 Р</p> <p class="price-too">Продление на год 100 Р<br></p></td> <td class ="table_cell-3"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".москва" id="13"><label for="13">.москва</label></p> <p class="price-yer">Цена 1 год 385 Р</p> <p class="price-too">Продление на год 385 Р<br></p></td> <td class ="table_cell-4"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".moscow" id="14"><label for="14">.moscow</label></p> <p class="price-yer">Цена 1 год 385 Р</p> <p class="price-too">Продление на год 385 Р<br></p></td> <td class ="table_cell-5"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".su" id="15"><label for="15">.su</label></p> <p class="price-yer">Цена 1 год 390 Р</p> <p class="price-too">Продление на год 390 Р<br></p></td> <td class ="table_cell-6"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".net" id="16"><label for="16">.net</label></p> <p class="price-yer">Цена 1 год 895 Р</p> <p class="price-too">Продление на год 995 Р<br></p></td> <td class ="table_cell-7"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".name" id="17"><label for="17">.name</label></p> <p class="price-yer">Цена 1 год 795 Р</p> <p class="price-too">Продление на год 895 Р<br></p></td> <td class ="table_cell-8"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".kz" id="18"><label for="18">.kz</label></p> <p class="price-yer">Цена 1 год 600 Р</p> <p class="price-too">Продление на год 600 Р<br></p></td> </tr> </table> </form> <script> function sel(opt) { var checks = document.getElementById('domain').getElementsByTagName('input'); for (var i = 0; i < checks.length; i++) { var check = checks[i]; check.checked = opt; } } </script> </div> </body> </html> </body> </html> да.. я не учился в институтах. по своей инвалидности, я самоучка. этот скрипт без рhр открывает слой |
А я думаете кафедру РНР/JS заканчивал? :) Хотя учился и в училище, а потом и в институте, но специальности не относятся напрямую к программированию.
Да дело даже не в языке как таковом. У вас ведь сама логика страдает, а за этим огрехи и в коде. Нужно проверить занятность домена, это первая задача, и пока она не будет выполнена, дальнейшие действия клиента должны игнорироваться, и вообще не разрешаться заказ домена, даже кнопки таковой на клиент не должно быть. А что у вас? Ну зачем при проверке занятости домена isset($_GET["TLD"]), это какое отношение имеет к имени домена? А об этом я уже писал strlen($_GET["domain"])>0, вы упорно эту глупость повторяете в коде своем. Ну введу я имя состоящее из одних N пробелов, и длина строки будет больше 0, но разве это имя? Удалять надо крайние пробелы, и если после этого строка не пуста, то проверять на корректность доступных символов, ну не может быть домен и как ",.,.,.....,,,...". И показывал ведь, что если обращение проверки и прочие идут к одной и той же странице, то обработчики этого должны быть в самом начале кода: <?php if($domain = trim($_GET["domain"])) { //Обрезали крайние пробелы, если строка не пустая после этого, далее //здесь нужно оправлять переменную $domain в функцию (ибо проверять это нужно будет постоянно, до тех пор пока клиент не закажет домен, то есть при каждом приеме данных от него), которая будет проверять корректность ввода //и уже результат этой проверки и определит дальнейшие действия - или ошибка, или разрешить заказ //окончание такого блока кода всегда должно заканчиваться выходном - exit, иначе пользователю будет возвращаться вывод страницы. } //это я не знаю зачем нужно, если нужно, значит нужно set_time_limit(0); require_once("doain.php"); //ошибка в имени, если только не случайность ?> а далее код самой страницы, <!DOCTYPE html> <head> <title></title> <meta charset="utf-8"> <style> .modalDialog ..... </head> <body> <table> <tr> <div class="dom-fon"> <form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="domain" id="domain"> <table> <tr> <td class ="table_name">Введите имя домена:</td> ...... //но бузе РНР кода if(isset($_GET["domain"]) && strlen($_GET["domain"])>0 && isset($_GET["TLD"]) && is_array($_GET["TLD"])) { $target=$_GET["domain"]; .... траля-ля Понимаете для чего такая конструкция? А для того, что при открытии страницы нет запросов $_GET["domain"] и т.п., и РНР код в начале страницы обрабатывающий запросы клиента, то есть диалог с клиентом после загрузки страницы, не будет исполнятся, клиент просто получит страницу, а при наличии этих запрос будет работать код обслуживающий все диалоги с пользователем. И я об этом уже не первый раз говорю, вы же "правите", но не понятно что, вы сперва поймите суть работы. А еще лучше сначала обдумать задачу в целом, затем разбить ее на ключевые моменты, которые и определят структуру кода. Структура кода, а сие каждая подзадача будут определять необходимый инструментарий языка (конструкции, функции), а это в купе нужно решать с набором, который нужно будет иметь на клиенте - элементы, методы, фичи всякие (типа панелей и прочих плюшек). А так как проверка данных от клиента, это постоянная и первостепенная задача сервера, и данные нужно проверять в два этапа - сперва занятость, разрешено далее, затем опять занятость и выбрано ли еще обязательное для заказа, и т.д.., то диалог подразумевает постоянную динамику, а для нее window.open ну совсем не лучшее решение. А уж после этого можно углубляться в мелочи, что будет лучше for или whie, и т.п. Вы же пытаетесь решать задачу не от общего к частному, а наоборот, от мелочей, а об общем даже и представления нет. В общем же ой как далеко до языка программирования, а им может быть какой угодно, хоть Бейсик. :) |
В этом скрипте нет заказа домена, это просто кнопка с адресом.
Заказ идет в биллинг программе. Сам скрипт лежит вот здесь http://youon.ru/Web/%D0%94%D0%BB%D1%...i-domena-whois Если я вас правильно понял то, мне нужно почти весь скрипт переделать. |
написал но наверняка не правильно.
<? if($domain = trim($_GET["domain"])) $domain==null { alert ("Нет указан домен!"); return; } if ($domain=='') { alert ("Нет указан домен!"); return; } var domain = document.getElementById('domain').value; var ext = document.getElementById('ext').value; var domname = domain + ext; var url="whois.php?domain="+domname; url=url+"&sid="+Math.random(); xmlHttps.onreadystatechange = function stateChanged() { if (xmlHttps.readyState==4 || xmlHttps.readyState=="complete") { document.getElementById("txtHint").innerHTML=xmlHttps.responseText; } else { document.getElementById("txtHint").innerHTML='<div id="txtHint"><div class="dt-sc-info-box"><p>Загрузка информации ...</p></div></div>'; } } xmlHttps.open("GET",url,true); xmlHttps.send(null); }) function GetXmlHttpObject() { var xmlHttps=null; try { // Firefox, Opera 8.0+, Safari xmlHttps=new XMLHttpRequest(); } catch (e) { //Internet Explorer try { xmlHttps=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttps=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttps; } set_time_limit(0); require_once("whois.php"); ?> <!DOCTYPE html> <head> <title></title> <meta charset="utf-8"> <style> .modalDialog { position: fixed; font-family: Arial, Helvetica, sans-serif; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0,0,0,0.8); z-index: 99999; -webkit-transition: opacity 400ms ease-in; -moz-transition: opacity 400ms ease-in; transition: opacity 400ms ease-in; display: none; pointer-events: none; } .modalDialog:target { display: block; pointer-events: auto; } .modalDialog > div { width: 400px; position: relative; margin: 10% auto; padding: 5px 20px 13px 20px; border-radius: 10px; background: #fff; background: -moz-linear-gradient(#fff, #999); background: -webkit-linear-gradient(#fff, #999); background: -o-linear-gradient(#fff, #999); } .close { background: #606061; color: #FFFFFF; line-height: 25px; position: absolute; right: -12px; text-align: center; top: -10px; width: 24px; text-decoration: none; font-weight: bold; -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; -moz-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000; } .close:hover { background: #00d9ff; } </style> </head> <body> <table> <tr> <div class="dom-fon"> <form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="domain" id="domain"> <table> <tr> <td class ="table_name">Введите имя домена:</td> <td><input class="name-dom" style="height:38px" name="domain" type="text" /></td> <td><input class="button-test" onclick="location.href='#openModal'" type="submit" value="Проверить"></td> <div id="openModal" class="modalDialog"> <div> <a href="#close" title="Закрыть" class="close">X</a> <p> <? if(isset($_GET["domain"]) && isset($_GET["TLD"]) && is_array($_GET["TLD"])) { $target=$_GET["domain"]; $whois=new whois(); foreach($_GET['TLD'] AS $tldz) { echo($target.$tldz." - "); $whois->zonelookup($target.$tldz); if($whois->ERROR==0) { if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1) { echo("занят,") ; }else { echo("свободен,"); } }else { echo("ошибка запроса"); } echo('<br style="display:inline">'); } } ?> </p> </div> </div> </tr> </table> <table> <tr> <td class ="table_butt-1"><input type="button" onClick="sel('checked')" value="Выбрать все" /></td> <td class ="table_butt-2"><input type="button" onClick="sel()" value="Снять все" /></td> <td><input type="button" value="Заказать домен" class="button-domain" onClick="window.open('http://panel.webvm.ru/OFFERTA/offerta_add_select_type.khtml','_blank')" /></td> </tr> </table> <table class="prise-domain-teble"> <tr class ="table_string"> <td class ="table_cell-1"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".ru" id="ext"><label for="11">.ru</label></p> <p class="price-yer">Цена 1 год <br /> 90 Р</p> <p class="price-too">Продление на год 90 Р<br></p></td> <td class ="table_cell-2"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".рф" id="ext"><label for="12">.рф</label></p> <p class="price-yer">Цена 1 год 100 Р</p> <p class="price-too">Продление на год 100 Р<br></p></td> <td class ="table_cell-3"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".москва" id="ext"><label for="13">.москва</label></p> <p class="price-yer">Цена 1 год 385 Р</p> <p class="price-too">Продление на год 385 Р<br></p></td> <td class ="table_cell-4"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".moscow" id="ext"><label for="14">.moscow</label></p> <p class="price-yer">Цена 1 год 385 Р</p> <p class="price-too">Продление на год 385 Р<br></p></td> <td class ="table_cell-5"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".su" id="ext"><label for="15">.su</label></p> <p class="price-yer">Цена 1 год 390 Р</p> <p class="price-too">Продление на год 390 Р<br></p></td> <td class ="table_cell-6"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".net" id="ext"><label for="16">.net</label></p> <p class="price-yer">Цена 1 год 895 Р</p> <p class="price-too">Продление на год 995 Р<br></p></td> <td class ="table_cell-7"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".name" id="ext"><label for="17">.name</label></p> <p class="price-yer">Цена 1 год 795 Р</p> <p class="price-too">Продление на год 895 Р<br></p></td> <td class ="table_cell-8"> <p class="zone-dom"><input type="checkbox" name="TLD[]" value=".kz" id="ext"><label for="18">.kz</label></p> <p class="price-yer">Цена 1 год 600 Р</p> <p class="price-too">Продление на год 600 Р<br></p></td> </tr> </table> </form> <script> function sel(opt) { var checks = document.getElementById('domain').getElementsByTagName('input'); for (var i = 0; i < checks.length; i++) { var check = checks[i]; check.checked = opt; } } </script> </div> </body> </html> </body> </html> |
Конечно не правильно, во-первых общее - если асинхронный диалог, то я не вижу чтобы вы свой РНР код проверки домена перенесли в него. Во вторых - if($domain = trim($_GET["domain"])) означает, обрезать карйние пробелы суперглобалльной переменной $_GET["domain"] и результат этой операции присвоить переменной $domain так как она может использоваться далее неоднократно. А условие if проверяет истинна ли переменная $domain, не пустая ли, не равна 0 (если бы это были числа), и если нет, то выполняется то, что в фигурных скобках.
Зачем же же еще и этот никчемный сыр-бор: $domain==null { alert ("Нет указан домен!"); return; } if ($domain=='') { alert ("Нет указан домен!"); return; } да еще никоим образом к РНР отношения не имеющий? Вы пытаетесь скрестить два языка, РНР и JS? Вы открыли тегом РНР php код, кусочек что я написал, а все далее шпарите от Javascript. Здесь скачиваем толмуты по РНР и изучаем, синтаксис, конструкции, функции, по крайней мере те, что используете. Иначе за вас никто ничего делать не будет, здесь же не кафедра со студентами, здесь форум помогающий в конкретном коде, а вас то учить еще надо. |
a так?
<? if($domain = trim($_GET["domain"])) $domain = $_GET["domain"]; { $domain >0; } else { echo (<div id="openModal">"Нет указан домен!"</div>); exit (); } var domname = domain + ext; var url="whois.php?domain="+domname; |
Часовой пояс GMT +3, время: 11:18. |