2016-07-14 12 views
2

Meine Codeigniter genannt: (Glaubst du, es ist ein Fehler aufgetreten?)CodeIgniter + jQuery Ajax läuft Fehler aber erfolgreich Rückruf

public function KayitOl() 
{ 
    $data = array(
     'kullaniciadi' => $this->input->post('kullaniciadi'), 
     'email'  => $this->input->post('email'), 
     'sifre'  => $this->input->post('sifre') 
     ); 

    $kuladi = $this->input->post('kullaniciadi'); 
    $sorgu = $this->db->query("SELECT * FROM uyeler WHERE kullaniciadi='".$kuladi."'"); 

    if ($sorgu->num_rows() > 0) 
    { 
     $response_array['status'] = 'error'; 
     echo json_encode($response_array); 
    } 
    else 
    { 
     $this->db->insert('uyeler',$data); 
     $response_array['status'] = 'success'; 
     echo json_encode($response_array); 
    } 

} 

Mein jQuery-Code: (Glaubst du, es ist ein Fehler, ?)

$(".submit").on("click", function(){ 
      var kuladi = $("#kullaniciadi").val(); 
      var email = $("#email").val(); 
      var sifre = $("#sifre").val(); 
      var confirm = $("#sifreonay").val(); 
      var hata  = $("#hata").val(); 
      var checkbox = $("#checkbox").is(":checked"); 
      var link  = "http://tantunisiparis:8080/main/anasayfa/KayitOl"; 

      var pattern = /^\b[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b$/i; 

      if (!kuladi || !email || !sifre) { 
       $("p#hata").removeClass("hidden"); 
       $("p#hata").html("Boş bırakılan alanlar var!"); 
      } 

      else if (!pattern.test(email)) { 
       $("p#hata").removeClass("hidden"); 
       $("p#hata").html("Lütfen geçerli bir e-mail giriniz!"); 
      } 

      else if (!checkbox) { 
       $("p#hata").removeClass("hidden"); 
       $("p#hata").html("Kullanıcı Sözleşmesini Kabul Etmediniz."); 
      } 

      else if (sifre != confirm) { 
       $("p#hata").removeClass("hidden"); 
       $("p#hata").html("Şifreler eşleşmiyor!"); 
      } 

      else{ 
       $.ajax({ 
        type :"POST", 
        url :link, 
        data : $("#kayitform").serialize(), 
        success: function (data){ 
          console.log(data.status); 
          alert("Success döndü"); 
         }, 
        error: function (data){ 
          console.log(data.status); 
          alert("Error döndü"); 
        } 
       }); 
      } 
     }); 

Warum habe ich ein Problem so?

Alle Antwortversuche werden geschätzt. Alle richtigen Antworten werden doppelt geschätzt;)

Vielen Dank!

+0

Welche Fehler haben Sie bekommen ? –

+0

Rückmeldung ("Success döndü"); aber codeigniter zum Statusfehler laufen? –

+0

Entfernen Sie einfach den json_encode vom Controller und echo $ response = 'error'; und in ajax tun Sie dies: Erfolg: Funktion (Daten) { console.log (Daten); Warnung ("Erfolg döndü"); }, – pradeep

Antwort

0

Sie müssen HTTP-Statuscode einzustellen. Rufen Sie diesen Code im Fehlerfall im Controller $this->output->set_status_header(500); an.

public function KayitOl() 
{ 
    $data = array(
     'kullaniciadi' => $this->input->post('kullaniciadi'), 
     'email'  => $this->input->post('email'), 
     'sifre'  => $this->input->post('sifre') 
     ); 

    $kuladi = $this->input->post('kullaniciadi'); 
    $sorgu = $this->db->query("SELECT * FROM uyeler WHERE kullaniciadi='".$kuladi."'"); 

    if ($sorgu->num_rows() > 0) 
    { 
     $response_array['status'] = 'error'; 
     $this->output->set_status_header(500); // or any other code 
     echo json_encode($response_array); 
    } 
    else 
    { 
     $this->db->insert('uyeler',$data); 
     $response_array['status'] = 'success'; 
     echo json_encode($response_array); 
    } 
} 

Sie können http://www.codeigniter.com/userguide3/libraries/output.html

+0

gearbeitet. Sehr großes Danke !! –

0
$.ajax({ 
        type :"POST", 
        url :link, 
        data : $("#kayitform").serialize(), 
        success: function (data){ 
          if(data.status == 'success'){ 
          console.log(data.status); 
          alert("Success döndü"); 
          } 
         if(data.status == 'error'){ 
         console.log(data.status); 
          alert("Error döndü"); 
          } 
         } 
       }); 

ich Ding, wird für Sie Dieser Code funktioniert ...

+0

thanx, habe ich versucht, aber konnte Fehler Feld nicht angezeigt werden.But Erfolg Fehler:/ –

0

gefällt das

$response = '' 
if ($sorgu->num_rows() > 0) 
{ 
    $response = 'error'; 

} 
else 
{ 
    $this->db->insert('uyeler',$data); 
    $response = 'success'; 

} 
echo $response;die; 

In Ajax in der Dokumentation mehr über Ausgabeklasse lesen:

success: function (response){ 
      if(response == 'success'){ 
      console.log(response); 

      } 
      if(response == 'error'){ 
      console.log(response); 

      } 
     } 
+0

Danke an alle! –

Verwandte Themen