CodeIgniter + jQuery Ajax运行错误但调用成功回调

时间:2016-07-14 07:11:34

标签: php jquery ajax codeigniter

我的Codeigniter:(您认为有错误吗?)

    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);
    }

}

我的jQuery代码:(你觉得有错吗?)

$(".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._%-]+@[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ü");
                    }
                });
            }
         });

为什么我遇到这样的问题?

任何回答尝试都表示赞赏。任何正确的答案都会受到双重赞赏;)

谢谢!

2 个答案:

答案 0 :(得分: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ü");
                          }
                      }
                });

我的意思是,这段代码对你有用......

答案 1 :(得分:0)

您需要设置HTTP状态代码。因此,如果出现错误,请在控制器$this->output->set_status_header(500);中调用此代码。

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);
    }
}

您可以在文档http://www.codeigniter.com/userguide3/libraries/output.html

中详细了解输出类