2013-08-01 3 views
0

Jquery файлпроверка Ajax не работает

$(document).ready(function() { 
     $('input.textinput3').each(function() { 

       $(this).rules("add", 
        { 
         required: true,      
         minlength: 3, 
         remote: "report/user_check.php", 

         messages: { 
          required: "Type Serial number!",        
          minlength: jQuery.format("Please, at least {0} character are necessary"), 
          remote: jQuery.format("{0} is already taken"), 
          // remote: 'This email address has already been used' 

         } 
        }) 
      }); 
// initialize the validator 
     $('form.warregform').validate();  

}); 

Мои PHP файлы

include("db.class1.php"); 

if (isset($_POST['wproserial'])) { 
    $db = new mysqldb(); 
    $db->select_db(); 

    for ($i=0;$i<count($_POST['wproserial']);$i++) { 
     {   
      $wproserial = $_POST['wproserial'][$i];    
     } 
    } 

    $query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')"; 

    if($db->num_rows($db->query($query)) < 1) { 
     return true; 
    }else { 
     return false; 
    } 
} 

я не могу проверить проверку с существующей базой данных, этот серийный номер. уже зарегистрирован или нет. все входные данные показывают сообщение «уже принято». поэтому я не могу представить. Поле «My Serial no» не ограничено.

Мои файлы Html

default show 
<input name="wproserial[]" id="wproserial0" type="text" value="" class="textinput3 " autocomplete="off"> 
After Add 
<input name="wproserial[]'+i+'" id="wproserial'+i+'" type="text" value="" class="textinput3"> 
+1

ВЫБРАТЬ EXISTS всегда будут возвращать строку, вам нужно пересмотреть запрос или если – Dale

+0

И запрос сломан, вы не можете иметь функцию PHP 'mysql_real_escape_String' внутри SQL без возможности избежать этого, он будет буквально заканчиваться как «SELECT ...» mysql_real_escape_String() '... ' – Dale

+0

Как всегда:' mysql_real_escape_string' устарел, все расширение 'mysql_ *' устарело и будет удалено. Процесс устаревания продолжается уже много лет. На страницах документов PHP есть красное предупреждающее поле _big на страницах функций, в которых вам больше нечего использовать функции _not_. Просто ** RTFM ** –

ответ

0

Удаленная проверка ожидает сервер скрипт для возврата JSON. Вы должны сделать следующее вместо того, чтобы просто возвращение true или false:

if($db->num_rows($db->query($query)) < 1) { 
    $valid = 'true'; 
} else { 
    $valid = 'false'; 
} 

echo json_encode($valid); 
+0

Спасибо за ваш ответ! Я стараюсь, но все равно не могу ... – user2612903

1

Изменить ваш запрос

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')"; 

к этому

$query = "SELECT * FROM products WHERE SerailNo='".mysql_real_escape_string($wproserial)."'"; 
+0

Спасибо за ваш ответ! Я пытаюсь это сделать, но все равно не могу ... – user2612903

+0

В конце вашего запроса есть жулик ')', но в остальном это правильное решение. – Sumurai8

+0

А хорошо, пятно, спасибо и исправлено – Dale

0

попробовать этот

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='".mysql_real_escape_string($wproserial)."')"; 

вместо

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')"; 
+0

Спасибо за ваш ответ! Я стараюсь, но все равно не могу ... – user2612903

Смежные вопросы