Js Запрос AJAX метод POST

ajax-jsПриветствую всех.
Опишу нужную вещь, как запрос с БД или с PHP файла посредсвом скрипта.


В данном конкретном примере рассматриваю совпадение логина при регистрации.

Допустим есть HTML файл в нём такие строчки кода:

<center>
Логин :<br> 
 <!--стандартное поле input из нашей формы-->
 <input type="text" id="username" class="otpravka" name="username" maxlength="64" onBlur=proverkalog("username")><br>

 <!--ниже поля, которые появляются при той или иной ошибке-->
 <div id="logne">Логин не введен</div>
 <div id="info2">Это имя уже занято</div>
 <div id="info3">Недопустимые символы</div>
</center></div>


CSS:

#logne,#info2,#info3{
display:none;
color: #ff0000;
font-family:Times New Romans,Arial;
font-weight:bold;
font-size:14px;
}

Код Js:

//полная проверка логина
//при смещении фокуса запускается данная функция
function proverkalog(objID){
//если логин меньше одного символа
if (document.getElementById('username').value.length < '1'){
 $('#logne').fadeIn();
 $('#info2').fadeOut();
 document.getElementById('username').style.border = '2px solid red';}
//если логин больше либо равно одному символу, то убираем наше гневное оповещение
if (document.getElementById('username').value.length >= '1'){
 $('#logne').fadeOut();
 document.getElementById('username').style.border = '';}

//запрос к php файлу test.php
 var login = $("#username").val(); //переменной login присваиваем значение input
 if (login !=''){  //если login не пустое
  $.ajax({
   type:'post',
   url:'test.php',
      // url:'../wp-content/themes/myteme/test.php',//для Вордпресс такой путь
  data:{'username':login},
   response:'text',
//при успешном запросе получем текст echo из test.php файла
 success:function (data) { 
//у меня ответ из базы данных, причем текст больше чем нужно, поэтому отсекаю лишнее 
var darep = /zanyato/i;  
 if (darep.test(data) == true)
//если есть совпадение то выводим сообщение об ошибке
{ $('#info2').fadeIn();
  document.getElementById('username').style.border = '2px solid red';} 
  else {$('#info2').fadeOut();
  document.getElementById('username').style.border = '';} 
        }});}

//проверка валидности логина, здесь проверяются только символы, т.е допустим можно создать логин "-1"       
 var leg = /[\/\\\[\]<>!#\$%\^&\*\(\)?\'\":;,]/i;
 var logform = document.getElementById('username').value;
 if(leg.test(logform) == true) { 
  $('#info3').fadeIn();}

if(leg.test(logform) == false) { 
  $('#info3').fadeOut();}
 }


Теперь php файл к которому обращаемся (test.php):

<?php
mysql_connect('localhost', 'root', 'root'); //подключаюсь к базе (хост, логин, пароль)
mysql_select_db('test_db'); //выбираю базу для подключения
$login1 = $_POST['username']; //получаю значение с нашей формы

$res1 = mysql_query("SELECT count(*) as c FROM test_db WHERE user_login = '$login1'"); //это уже запрос к БД ( у меня это совпадения на введные логин, возвращает массив, но меня интересует - да, нет
$row=mysql_fetch_array($res1);
  if(!empty($row[0]['c']>0)) 
 { echo 'zanyato'; } //если не пустое - передаю это сообщение
mysql_close();
 ?>

 

Если нужен просто запрос и ответ от предполагаемого файла, то есть более простая запись:

<?php
 $proverkalogin = 'admin';
 $login1 = $_POST['username'];
 if ($login1==$proverkalogin)
{ echo 'zanyato'; } 
 ?> 
 
  В этом случае в Js вернется только слово ‘zanyato’ и ничего более, поэтому проверок типа: 
  var darep = /zanyato/i;  
if (darep.test(data) == true)
не требуется.


Оставить комментарий