Ошибка формы codeigniter и ajax

У меня проблемы с этим кодом, я пытаюсь использовать ajax на codeigniter, у меня есть форма с именем пользователя для выбора. Если я нажимаю на пользователя, я не получаю другие переменные из базы данных. SQL-запрос работает нормально. Код разделен на вид / контроллер / модель. Код модели работает нормально, проблема должна быть в представлении и / или контроллере.

Я правильно визуализирую интерфейсную форму, но когда я нажимаю на имена, я не получаю вывода из запросов, явной ошибки нет.

просмотреть код:

<!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>

код контроллера:

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

}

код модели:

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

}

с какой ошибкой вы столкнулись? добавить более подробную информацию о вашей проблеме

Bilal Ahmed 28.08.2018 13:37

$ postData = $ this-> input-> post ('имя пользователя');

Mulet Enguix 28.08.2018 16:31

Я попробовал модификацию Mulet, но все еще не работает, @Bilal, к сожалению, ошибки нет, я вижу страницу правильно, но форма ajax не работает, когда я нажимаю на имена

Rocco Proscia 28.08.2018 17:54

Вам нужно выполнить некоторую отладку, чтобы отследить проблему. Посмотрите на вкладку «Сеть» в инструментах разработчика вашего браузера. Посмотрите HTTP-запрос. Он отформатирован так, как вы ожидаете? Как только вы это узнаете, вы можете исключить JS или PHP как проблему.

Quentin 28.08.2018 17:59
Опасность: Вы уязвим для Атаки с использованием SQL-инъекций, от которого вам нужно самому защищать.
Quentin 28.08.2018 17:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
45
2

Ответы 2

data: {"username": username} сделать этот тип

В имени свойства имя пользователя нет ничего, что требовало бы его заключения в кавычки в литерале объекта.

Quentin 28.08.2018 17:56

почему вы используете базовую функциональность php mysql connect? просто поместите детали db в database.php и используйте построитель запросов CodeIgniter для запросов mysql.

Пожалуйста, проверьте эту ссылку -

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

Другие вопросы по теме