2013-03-01 42 views
0

我使用ajax通過kohana路由調用控制器。在此控制器內部,我驗證了我的表單的所有字段,並將有關驗證失敗的字段的數據保存到屬性中。KO 3.2 - 需要關於ajax設計的建議

我想要做的下一件事就是讓第二個Ajax調用到同一個控制器,檢索這個屬性,並用這個做一些操作。

但是,在第二次調用中,該屬性顯然是空的。

有沒有辦法解決這個問題?沒有在第一個Ajax調用中回顯屬性?

編輯。

$("#form").validate({ 
    rules { 
     remote: "ajax_file.php" 
    } 
    messages { 
     // I want to get information from ajax call above here 
    } 
}); 

的jQuery:1.9.0

在第一個塊(規則)我有回聲TRUE或FALSE - 這就是爲什麼我不能也呼應關於失敗的字段信息。

在ajax_file.php中,我正在收集有關失敗字段的數據,並且我必須在下面創建第二個ajax調用(消息)並在第二個.php文件中處理此數據。

+0

在第一個ajax調用中回顯屬性有什麼問題?您可以跳過一步,以這種方式加快應用程序的速度。爲什麼你不想這樣做的任何特殊原因? – 2013-03-01 12:47:00

+0

另外,我們無法在沒有看到問題的情況下告訴你什麼是錯誤的。這裏沒有人會猜測你的應用程序是怎麼樣的,所以我建議你爲我們提供一些代碼。 – 2013-03-01 12:48:37

+0

好的,謝謝,我編輯並更好地描述了我的問題。 – user2115883 2013-03-01 12:53:06

回答

0

據我所知,你想驗證一個字段,是否正確?你爲什麼不驗證你的字段控制器通過使用kohana類的「驗證」(驗證::工廠($ _ POST))與您希望的任何規則...然後將結果返回到窗體。

PS你的情況,你可以第一個通話結束後,執行第二Ajax調用,用ajax成功選項

0

避免讓兩個請求......你能做到下一個請求,而不是..

在您的控制器

public function action_ajaxmethod(){ 

    // do some validation code here 
    // every error will be stored in 
    // **err** variable 

    if(!empty(err)) die(json_encode("success" => false, "errors" => err)); 
    else die(json_encode("success" => true)); 
} 

在你的js

$.ajax({ 
    url: 'ajaxmethod', 
    data: {data: data}, 
    type: 'POST', 
    dataType: 'json', 
    success: function(result){ 
    if(result['success']==true){ 
     // do some actions 
    } 
    else{ 
     // do some actions 
    } 
    } 
}); 

希望這有助於...