尝试将jQuery AJAX与Codeigniter结合使用,但$ .post()无法正常工作

时间:2018-07-20 15:33:18

标签: php jquery ajax codeigniter codeigniter-3

                    $.post("datahandler.php",{
                        UserName: name,
                        PassWord: password

                    },function(data, status){
                        alert(status);
                        $("#co").html(data);
                    });

因此,我尝试使用$.post,但此功能仅在我设置时有效  datahandler.phproot(C:\xampp\htdocs\codeign)本身,但是当我将其放入C:\xampp\htdocs\codeign\application\views\pages\datahandler.php时失败  ,代码,但是没有用。

因此,我尝试将datahandler.php更改为C:\xampp\htdocs\codeign\application\views\pages\datahandler.php,然后 codeign\application\views\pages,但仍然没有成功。

我的一些 长老说问题是关于控制器和路线的,但是我不这样认为,因为我的默认控制器指向views文件夹 ("C:\xampp\htdocs\codeign\application\views")

这是我的控制器(Pages.php):

  public function view($page = 'JoinUs')
   {

    if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
    {


            // Whoops, we don't have a page for that!
            show_404();
    }

    $data['title'] = ucfirst($page);
    if($page == "datahandler")
    {
      $this->load->view('pages/datahandle',$data);
    }
    else{

    $this->load->view('templates/header', $data);
    $this->load->view('pages/'.$page, $data);
    $this->load->view('templates/footer', $data);
    }
   }

}

这是我的route.php文件:

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');


    $route['default_controller'] = 'pages/view';

    $route['(:any)'] = 'pages/view/$1';

这是标题的完整版本:

      <html>
       <head>
             <title>Dark Site</title>
             <style>
                  body {
                 background-image: url("/images/cookie.jpg");
              }
             h1 {
                 text-align: center
             }

            </style>
            <script src="https://code.jquery.com/jquery-3.3.1.min.js"
                    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
                    crossorigin="anonymous">
            </script>
            <script>
               $(document).ready(function(){
                $("#login2").click(function() {
                    var name  = $("username").val();
                    var password = $("password").val();
                    $.post("datahandler.php",{
                        UserName: name,
                        PassWord: password

                    },function(data, status){
                        alert(status);
                        $("#co").html(data);
                    });
                 });



              });
             </script>        
     </head>
     <body >
             <h1><?php echo  $title; ?></h1>
                 <p style="text-align:center;"><img src="/images/vade.jpg" 
    alt="Logo"></p>

所以我有点困惑,对不起,如果您看到重大错误,我只是想在实习生中独自学习,因为它们没有给我适当的工作。

1 个答案:

答案 0 :(得分:-1)

根据您的配置,

$.post("datahandler.php", {     
         ^
           this will not work 
})

您至少需要

site_url('pages/view/datahandler')
           ^     ^            ^
    Controller   Method you   Argument, in your case view file you want to load
                 are calling

如下所示正确

$.post(
       "<?php echo site_url('pages/view/datahandler');?>", 
       { 
         Username : $("username").val(), 
         Password : $("password").val() 
       },  
       function(){


       }
);