首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >codeigniter和ajax表单错误

codeigniter和ajax表单错误
EN

Stack Overflow用户
提问于 2018-08-28 19:35:36
回答 2查看 47关注 0票数 0

我有这个代码的问题,我正在尝试做codeigniter的ajax,我有一个形式与用户名选择。如果我点击一个用户,我不会从数据库中获得其他变量。SQL查询运行良好。代码分为视图/控制器/模型。模型代码似乎运行良好,问题应该出在视图和/或控制器中。

我正确地可视化了前端表单,但是当我单击名称时,没有从查询中得到任何输出,也没有显式的错误。

查看代码:

代码语言:javascript
复制
<!doctype html>
<html>
 <head>
   <title>How to send AJAX request in Codeigniter</title>
 </head>
 <body>

  Select Username : <select id='sel_user'>
   <option value='abc'>abc</option>
   <option value='ad'>ad</option>
   <option value='admin'>admin</option>
   <option value='sunil'>sunil</option>
  </select>

  <!-- User details -->
  <div >
   Username : <span id='suname'></span><br/>
   Name : <span id='sname'></span><br/>
   Email : <span id='semail'></span><br/>
  </div>

  <!-- Script -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script type='text/javascript'>
  $(document).ready(function(){

   $('#sel_user').change(function(){
    var username = $(this).val();
    $.ajax({
     url:'<?=base_url()?>index.php/user_ajax/userDetails',
     method: 'post',
     data: {username: username},
     dataType: 'json',
     success: function(response){
      var len = response.length;

      if(len > 0){
       // Read values
       var uname = response[0].username;
       var name = response[0].password;
       var email = response[0].email;

       $('#suname').text(uname);
       $('#sname').text(name);
       $('#semail').text(email);

      }else{
       $('#suname').text('abc');
       $('#sname').text('cde');
       $('#semail').text('');
      }

     }
   });
  });
 });
 </script>
 </body>
</html>

控制器代码:

代码语言:javascript
复制
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class user_ajax extends CI_Controller {

 public function index(){

  // load base_url
  $this->load->helper('url');

  // load view
  $this->load->view('user_view_ajax');
 }

 public function userDetails(){
  // POST data
  $postData = $this->input->post();
  # echo $postData;
  //load model
  $this->load->model('model_ajax');

  // get data
  $data = $this->model_ajax->getUserDetails($postData);

  echo json_encode($data);
 }

}

型号代码:

代码语言:javascript
复制
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class model_ajax extends CI_Model {

 function getUserDetails($postData){

  $response = array();

  if($postData['username'] ){
    /*
   // Select record
   $this->db->select('*');
   $this->db->where('username', $postData['username']);
   $q = $this->db->get('users');
   $response = $q->result_array();
   */
    // Create connection
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "anubi";
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    #$sql = $conn->query("SELECT username, password, email from users WHERE username=".$postData['username']);
    #$response=$sql->result_array();
    $sql = $conn->query("SELECT username, password, email from users WHERE username=".$postData['username']);
    $array = array();
     while ($row = $sql->fetch_assoc()) {
        $array[] = $row;

     }
     $response=$array;
  }

  return $response;
 }

}
EN

回答 2

Stack Overflow用户

发布于 2018-08-29 02:09:10

为什么要使用核心php mysql连接功能?只需将数据库详细信息放在database.php中,并使用CodeIgniter查询构建器进行mysql查询。

请检查此链接--

https://www.codeigniter.com/userguide3/database/query_builder.html#selecting-data

票数 0
EN

Stack Overflow用户

发布于 2018-08-28 20:34:06

数据:{"username":username}执行此类型

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52056885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档