serinletici olmadan göndermek için, ajax kullanarak form giriş

4 Cevap php

I http://www.ryancoughlin.com/2008/11/04/use-jquery-to-submit-form/ bir giriş formu oluşturmak için bu öğretici kullanıyorum

Bu bizim ldap sunucusu / w karşı doğrular.

Ne ben bir sorun yaşıyorum hattı

success: function(){
 $('form#submit').hide(function(){$('div.success').fadeIn();});

Bu kullanıcı adı ve şifre başarıyla binded biz bile bilmiyoruz bile başarı çalışır.

Yayınlanmıştır kullanıcı adı ve şifre başarıyla binded eğer başarıyı sadece çalıştırmak için bir yolu var mı?

EDIT:

Ldap-login.php Eklenenler php kodu

<?php

ini_set('display_errors',1);
error_reporting(E_ALL);
require_once('/web/ee_web/include/adLDAP.php');
$adldap = new adLDAP();
if (isset($_POST['username']) && isset($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];  // associated password

    // connect to ldap server
    $authUser = $adldap->authenticate($username, $password);
    if ($authUser === true) {
        $_SESSION['user_session'] = $username;
        if(isset($_SESSION['user_session'])) {
            print "ok";
        }   
    }
    else {
      print "User authentication unsuccessful";
    }
}
?>

4 Cevap

Cevabınızı basit bir dize "Tamam" ya da hata iletisi sahip geri gelirse, bunu bu şekilde kontrol edebilirsiniz:

success: function(data){
  if(data === "ok") {
    $('form#submit').hide(function(){$('div.success').fadeIn();
  } else {
    alert(data); // If not "ok", show error message
  }
});

Alternatif olarak, daha karmaşık bir JSON yanıt kontrol / gönderin.

Başarı ajax çağrısı başarılı olduğu anlamına gelir çünkü başarısını çalışır neden nedenidir. Yani henüz uygulamaya vermedi ama diğer yanıtlar açıklandığı gibidir çalışması gerektiğini hangi mantığa karşı valide anlamına gelmez. Ama şimdi başarı denilen callback zaman biliyorum.

Ajax fonksiyonu başarıyla binded kullanıcı adı ve şifre olsun ya da olmasın dönmek var. Sizin sonra kod gibi görünecektir:

success: function(data){
  if(data.success){
    $('form#submit').hide(function(){$('div.success').fadeIn();});
  }
}

Yapmanız gereken başarı fonksiyonu sayesinde bir bayrak dönmek olduğunu.

Senin durumunda success: işlevi başarıyla, ille doğrulama başarılı olmanın sunulmadan formunu temsil eder. başarı işlevi sunucu tarafından döndürülen olarak istediğiniz bir dize gösteren hiçbir şeyi kabul edebilir.

JQuery dokümanlar success(data, textStatus, XMLHttpRequest) bölümüne bakın.

Sen yapabilirsin:

   success: function(status){
      if(status === "loggedIn") {
         $('form#submit').hide(function(){$('div.success').fadeIn();});
      }
   }