2010-07-28 28 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文件進行驗證

感謝 馬爾科

+0

我它不使真正意義上,使用PHP腳本來驗證,因爲你使用PHP,而不是你的JavaScript ,但然後你使用JavaScript來處理PHP驗證?!? – Ties 2010-07-29 00:08:44

+0

我使用PHP腳本,如果用戶有JavaScript DISABLED,並且我還使用PHP腳本,如果javascript是ENABLED ...只有一個腳本來驗證!爲了使它更有趣,我想突出顯示那些無效的輸入字段......爲了實現這一點,我需要腳本告訴我哪些字段無效。 – Marco 2010-07-29 05:09:33

回答

0

一條路可走。將返回不通過字段的JSON編碼陣列。

從您的PHP腳本中,輸出您的無效輸入數組(json編碼,以便您的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 2010-07-29 05:12:46