2010-07-28 2 views
0

Я использую jQuery с PHP для проверки формы. Я хочу вернуть те поля, которые не проверяют, так что я могу выделить их с помощью JavaScriptВерните поля, которые не проходят проверку в PHP, на jQuery

это моя попытка с помощью PHP (validate.php):

<?php 
... 
$a_invalidInput = array(); 

$from = $_POST['from']; 
$to = $_POST['to']; 
$email_to = $_POST['email_to']; 

if(empty($from)){ 
    $a_invalidInput[] = 'from'; 
} 

if(empty($to)){ 
    $a_invalidInput[] = 'to'; 
} 

//validate the email_to address 
if(empty($email_to)){ 
    $a_invalidInput[] = 'email_to'; 
} else{ 

    //do more validation for email 
} 
... 
?> 

Это мой JQuery код:

... 

var data = "from="+ from + "&to=" + to + "&email_to=" + email_to; 

$.ajax({ 
    url: "includes/validate.php", 
    type: "POST", 
    data: data, 
    success: function(){ 

     //highlight fields that do not pass validation 

    } 
}); 

... 

Я не уверен, что я на правильном пути или нет И как вернуть поля ввода, которые не проходят проверку, поэтому я могу добавить класс, чтобы выделить поля, которые не проходят проверку.

Я мог бы сделать это с помощью JavaScript, но я предпочитаю использовать файл PHP для проверки

Благодаря Marco

+0

мне не делает действительно чувствую, вы используете скрипт PHP для проверки, потому что вы используете PHP, а не JavaScript , но затем вы используете javascript для обработки проверки php?!? – Ties

+0

Я использую PHP-скрипт, если у пользователя есть javascript DISABLED, и я также использую PHP-скрипт, если javascript ENABLED ... только один скрипт для проверки! Чтобы сделать его более привлекательным, я хочу выделить поля ввода, которые не являются допустимыми ... для этого мне нужен сценарий, чтобы сообщить мне, какие поля недействительны. – Marco

ответ

0

Один путь будет возвращать JSON закодированные массив полей, которые не проходят.

С вашего PHP-скрипта выведите свой массив Invalid Input (json encoded, чтобы ваш javascript мог его использовать). Затем на стороне Javascript вы хотите проверить, имеет ли этот вывод какие-либо значения. Если это так, используйте их.

<?php 
    // at the end of your script 
    header('Content-type: application/json'); 
    echo json_encode($a_invalidInput); 
    exit(); 
?> 

Теперь в вашем JQuery, вы хотите использовать этот выход JSon ...

$.ajax({ 
    url: "includes/validate.php", 
    type: "POST", 
    dataType: "json", 
    data: data, 
    success: function(data){ 
     if (data !== undefined 
     && data.length > 0) { 
      for (var i = 0; i < data.length; i++) { 
       var field_name = data[i]; 
       var field = $('input[name=' + field_name + ']'); 

       // now you have the field, so you can modify it accordingly. 
      } 
     } 
    } 
}) 
+0

спасибо за подсказку! – Marco

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