Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2015, 15:21
Новичок на форуме
Отправить личное сообщение для rewired Посмотреть профиль Найти все сообщения от rewired
 
Регистрация: 23.07.2015
Сообщений: 2

Передача значения в скрипт из поля input
Здравствуйте, я в javascript совсем не силен мягко говоря, но вот возникла такая необходимость переработать скрипт проверки занятости доменов под jquery. он передает значения в php, a от туда уже берется результат. Исходный скрипт работает.
Исходник скрипта
var xmlHttps
function ShowDom(domain,zona)
{ 
xmlHttps=GetXmlHttpObject();
if (xmlHttps==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }
if (domain==null)
 {
 alert ("Нет указан домен!");
 return;
 } 
if (domain=='')
 {
 alert ("Нет указан домен!");
 return;
 } 
var domname = domain + "." + zona;
var url="gets.php?domain="+domname;
url=url+"&sid="+Math.random();
xmlHttps.onreadystatechange=stateChanged ;
xmlHttps.open("GET",url,true);
xmlHttps.send(null);
}

function stateChanged() 
{ 
if (xmlHttps.readyState==4 || xmlHttps.readyState=="complete")
 { 
 document.getElementById("txtHint").innerHTML=xmlHttps.responseText; 
 }
 else
 {
 document.getElementById("txtHint").innerHTML='<div id="txtHint"><table border="0" height="100%" width="100%"  align="center"><tr align="center" valign="middle"><td width="100%" align="center" valign="middle" height="100%"><b>Загрузка информации ...</b>.</td></tr></table></div>';
 } 
}
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;
}
а вот что получилось у меня
//DOMIAN NAME VALIDATION
  $('#check').click(function(domain,ext){
xmlHttps=GetXmlHttpObject();
		rules: { 
		    domain: { required: true }
			
		}
		
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;
}
и вот такая форма:
<form class="search-form domain-search" name="frmDomainSearch" novalidate="novalidate" id="frmDomainSearch">
                                	<div class="dt-sc-three-fifth column first">
                                    	<input type="text" placeholder="В поисках доменного имени?" value="" name="domain" id="domain">
                                    </div>
                                    <div class="dt-sc-one-fifth column">
                                    	<span class="selection-box"><select class="domains valid" name="domains" id="ext">
                                        	
<option selected="selected">.ru</option>
<option>.su</option>
<option>.com</option>
<option>.org</option>
</select></span>
                                    </div>
                                    <div class="dt-sc-one-fifth column">
                                    	<input type="button" id="check" class="dt-sc-button medium" name="domains_ok" value="Проверить"></form>
Внимание вопрос, где я накосячил, что при нажатии кнопки я получаю результат: [object Object]undefined.
Если я меняю
var domname = domain + "#ext";
получаю: [object Object]
а если
var domname = "#domain" + "#ext";

То со мной начинает разговаривать php и выдает осмысленную фразу:Проверьте правильность введенных данных!
и сам php скрипт:
<?php 
class whois {

var $port = 43;
var $MAXLEN = 1024;

// Тип запроса
var $QUERY_TYPE = "domain";     
var $DEFAULT_SERVER = "whois.crsnic.net";

//Настрока повторных попыток
var $MAX_RETRIES = 3;
var $SLEEP_VAL = 1;
var $RETRY = 0;

var $FOUND = 0; // устанавливается в 0 если запись не найдена
var $ERROR = 0; // устанавливает признак ошибки
var $DATA_MIN = 8; //минимум данных свидетельствующих о том что сервер работает

var $DATA_COUNT = 0;

//Переменные. берутся из запроса
var $ORGANIZATION;
var $ORG_HANDLE;
var $ORG_ADDRESS;       // массив
var $DOMAIN_NAME;
var $DOMAIN_STATUS;     
var $ADMIN;             // массив: "name", "nic" и "email"
var $TECH;              // массив: "name", "nic" и "email"
var $ZONE;              // массив: "name", "nic" и "email"
var $BILLING;
var $UPDATED;
var $CREATED;           
var $DNS_NAME=array();          // массив с именами DNS серверов
var $HANDLES;           

var $IP="";
//список серверов по зонам
var $SERVER = array(
"com"=>"whois.crsnic.net",
"net"=>"whois.crsnic.net",
"edu"=>"whois.educause.net",
var $TLD;
var $RAWINFO;
var $DNSINFO;
//обращение к WHOIS серверу
function connect ($server)
{
 while($this->RETRY <= $this->MAX_RETRIES)
 {
  $ptr=fsockopen($server, $this->port); 
  if($ptr>0)
  {
   $this->ERROR=0;
   return($ptr);
  }else
   {
    $this->ERROR++;
    $this->RETRY++;
    sleep($this->SLEEP_VAL);
   }
 }
}

//Получает данные и загружает их в массив
function rawlookup ($query)
{
 $array=array();
 $this->FOUND=1;
 $query=strtolower(trim($query));
 if(strlen($query)<=2)
 {
  $this->ERROR=1;
  return($array);
 }
 //устанавливаем сервер по умолчанию
 $server=$this->DEFAULT_SERVER;
 //пытаемся переназначить его
 if($this->QUERY_TYPE=="domain")
 {
  ereg(".+\.(.+)\.{0,1}",$query,$backrefs);
  if(isset($backrefs[1]) && strlen($backrefs[1])>0 && isset($this->SERVER[$backrefs[1]]))
  {
   $this->TLD=$backrefs[1];
   $server=$this->SERVER[$this->TLD];
  }

 }
 $ptr=$this->connect($server);
 if($ptr)
 {
  $query .= "\n";
  fputs($ptr, $query);
  $i=0;
  while(!feof($ptr))
  {
   $array[$i]=fgets($ptr,$this->MAXLEN);
   $this->DATA_COUNT+=strlen(trim($array[$i]));
   if(eregi("No match for", $array[$i]) || eregi("Not found", $array[$i]) || eregi("No entries found for", $array[$i]))
   {
    $this->FOUND=0;
    break;
   }
   if(eregi("WHOIS database is down",$array[$i]) || eregi("Please wait a while and try again",$array[$i]))
   {
    $this->ERROR=1;
    $this->FOUND=0;
    break;
   }
   $i++;
  }
  fclose($ptr);
  if($this->DATA_COUNT>$this->DATA_MIN && $this->ERROR==0 && $this->FOUND==1)
  {
   return($array);
  }
 }
 //в случае ошибки возвращаем пустой массив
 return (array());
}


// парсинг результатов
function parsezone ($array)
{
 $result=array();
 if(!isset($array) || !is_array($array) || count($array)<=3)
 {
  $this->FOUND=0;
  return $result;
 }
 $cnt=count($array);
 $rescnt=0;
 $i=0;
 $isinfo=true;
 while($i<$cnt)
 {
  if(!$isinfo)
  {
   $str=trim($array[$i]);
   $result[$rescnt]=$str;
   //Извлекаем настройки DNS
   if(eregi("NAME SERVER", $str) || eregi("NSERVER", $str))
   {
    $str=trim(substr($str, strpos($str, ":")+1));
    if($pos=strpos($str, " "))
    {
     $str=substr($str, 0, $pos);
    }
    if(substr($str, -1)==".")
    {
     $str=substr($str, 0, -1);
    }
    $this->DNS_NAME[]=strtolower($str);
   }
   $rescnt++;
  }
  if(trim($array[$i])=="" && $isinfo)
  {
   $isinfo=false;
  }
  $i++;
 }
 return $result;
}

function zonelookup ($query)
{
  $query=trim($query);
  $this->RAWINFO=$this->rawlookup($query);
  if($this->FOUND)
  {
     $this->RAWINFO=$this->parsezone($this->RAWINFO);
  }
  if($this->FOUND==0)
  {
   return;
  }
  if($this->dns_lookup($query))
  {
   $this->IP=gethostbyname($query);
   $this->build_dns($query);
  }
}

function build_dns($query)
{
 $cnt=0;
// $temp=dns_get_record($query, "NS");
 foreach($this->DNS_NAME AS $dns)
 {
  $this->DNSINFO[$cnt]="NS: ".$dns."\tinternet address = ".gethostbyname($dns);
  $cnt++;
 }
 if(getmxrr($query, $temp)) 
 {
  foreach($temp AS $dns)
  {
   $this->DNSINFO[$cnt]="MX: ".$dns."\tinternet address = ".gethostbyname($dns);
   $cnt++;
  }
 }

}
function dns_lookup($query)
{
  return checkdnsrr($query,"ANY");
}


};

if(isset($_GET["domain"]) && strlen($_GET["domain"])>0)
{
 $target=$_GET["domain"];

 $whois=new whois();
 $whois->zonelookup($target);
 if($whois->ERROR==0)
 {
  if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
  {
   echo("<div class='dt-sc-error-box'><p><b>К сожалению домен занят!</b></p></div>");

  }
  else
   {
    echo("<div class='dt-sc-success-box'><p><b>".$target."</b> - <b>Домен свободен</b></p></div><a class='dt-sc-button medium  aligncenter  lightgreen' target='_blank' href='#'>Регистрация</a>");
   }
 }else
  {
   echo("<div class='dt-sc-error-box'><p><b>Ошибка запроса. Попробуйте еще раз!</b></p></div>");
  }
}
else
{
echo("<div class='dt-sc-warning-box'><p><b>Проверьте правильность введенных данных!</b></p></div>");
}
?>

Прошу простить, может быть предоставил много не нужной информации. Помогите пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2015, 15:35
Новичок на форуме
Отправить личное сообщение для rewired Посмотреть профиль Найти все сообщения от rewired
 
Регистрация: 23.07.2015
Сообщений: 2

Ура я починил скрипт. Я не совсем идиот, но алерты не работают. Может кто поможет его оптимизировать?
var xmlHttps
	//DOMIAN NAME VALIDATION
  $('#check').click(function(domain,ext){
xmlHttps=GetXmlHttpObject();
if (xmlHttps==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }
if (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;
}

Работоспособный вариант. Я больше чем уверен в огромном количестве костылей в скрипте. помогите сделать его элегантнее, пожалуйста. Спасибо. Можно ли валидацию прикрутить как тут:
$('form[name="frmDomainSearch"]').validate({
		rules: { 
		    domain: { required: true }
			
		},
		errorPlacement: function(error, element) { }
	});
?

Последний раз редактировалось rewired, 23.07.2015 в 15:38.
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2016, 14:01
Новичок на форуме
Отправить личное сообщение для kuznec1979 Посмотреть профиль Найти все сообщения от kuznec1979
 
Регистрация: 10.10.2016
Сообщений: 1

На современном рынке товаров и услуг наличие своего сайта как для компании, так и для частного лица — это не роскошь, а необходимость. Так же, как и возможность общения с клиентом по электронной почте.
С помощью сервиса OF.ua вы получаете решение этих двух задач сразу:
эксклюзивное имя сайта и стильное имя почты
проверка домена на занятость https://of.ua/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести значения value из select в input Jeick9 Events/DOM/Window 28 29.11.2017 08:57
Как передать 2 значения в скрипт? useruser jQuery 1 07.10.2014 11:32
Поля input передача Value Sadist_dead Элементы интерфейса 1 29.08.2011 15:00
Значения input radio bFire Events/DOM/Window 1 21.11.2010 03:42
Дублирование значения одного поля формы в другое LatSer Общие вопросы Javascript 0 15.01.2010 14:46