CodeIgniter + jQuery Ajax运行错误,但成功调用了回调 - php

我的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ü");
                    }
                });
            }
         });

为什么我有这样的问题?

任何回答尝试表示赞赏。任何正确的答案都倍受赞赏;)

谢谢!

参考方案

您需要设置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中阅读有关输出类的更多信息

Codeigniter URI路由和安全性 - php

在codeigniter或restful结构中,页面可以通过URI路由到例如,如果我想查看id:1的项目列表,那么我只需要创建一个类似这样的路径:domain.com/item/view/1 并在控制器中function view() { $id = $this->uri->segment(3); //database get data and …

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery-找不到Ajax网址 - php

好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…

jQuery Json + jQuery onChange - php

我正在使用php与mysql数据库进行通讯,然后使用json_encode对关联数组进行编码。我知道这很有效,我可以直接调用php并查看json结果。使用jQuery时,我在下拉菜单上使用onChange来调用php函数并获取结果。我认为我在使用jQuery和json时遇到问题,但是我浏览了多个帖子,但找不到很好的答案。这是我正在使用的代码。我如何到达jso…

如何使用Laravel + Jquery Ajax从textarea到textarea取值? - php

我如何使用laravel和jquery ajax从一个文本区域到另一个文本区域获取价值。到目前为止,我有此文件。路线:Route::post('/post', 'PostController@post'); 控制器:class PostController extends Controller { public fun…