2015-02-25 5 views
1

Я создаю приложение с Codeigniter MVC, но у меня проблема с отправкой данных с поста AJAX на мой контроллер. Я получил сообщение об ошибке, как это:

ERROR: operator does not exist: character varying = integer LINE 3: WHERE "nip" = 0^HINT: No operator matches the given name and argument type(s). You might need to add explicit type cast

код модели:

// model m_members 
    function get_name($nip) 
    { 
     $this->load->database(); 
     $this->db->select('name'); 
     $this->db->where('nip', $nip); 
     return $this->db->get('student')->result_array(); 
    } 

Контроллер:

function insert_member() 
{ 
    $this->load->model('m_members'); 
    $data['type'] = $this->m_members->type_member(); //another function 
    $nip = $this->input->post('nip'); 
    $data = $this->m_members->get_name($nip); 
    echo json_encode($data); 

    $this->load->view('add_members',$data); 

} 

Вид:

// view 
<input type="text" id="username" name="username" placeholder="Username*"> 
<input type="text" id="name" name="username" placeholder="Name *"> 

Мои JavaScript:

$(document).ready(function() { 
    $("#username").keyup(function() { 
     var nip = $('#username').val(); 
     $.ajax({ 
      type : "POST", 
      data : "nip="+nip, 
      url  : "add_members/insert_member", 
      dataType: "json", 
      success: function(data){ 
      $("#name").val(data.name); 
      } 
     }); 
    }); 

}); 

и это мой стол

//my table 
nip | name | address 
-------------------------- 
1212 | David | 1428 Hannah Street 
-------------------------- 

, как это исправить?

ответ

0

Пожалуйста, измените свой код данных в AJAX:

данные: "прижим =" + прижим,

с

данные: Ошибкой: {Н Н},

+0

еще получили ошибку» Номер: ОШИБКА: оператор не существует: character variableing = integer LINE 3: WHERE «nip» = 0^СОВЕТ: оператор не соответствует указанному имени и типу аргументов. Возможно, вам нужно будет добавить явные типы приведения. SELECT "название" FROM "студент" ГДЕ "отщипнуть" = 0 Имя файла: E: \ XAMPP \ HTDOCS \ студент \ система \ базы данных \ DB_driver.php Порядковый номер: 331 – dogol

+0

Вы звоните Аякса на функцию KeyUp, которая будет вызывать insert_member при каждом нажатии клавиши и передавать один на один алфавит. Я думаю, вы хотите передать полное имя пользователя в ajax, а затем хотите сопоставить его с функцией ajax, чтобы вы могли вызывать onchange вместо keyup. Кроме того, в insert_member, echo $ this-> input-> post ('nip'); и проверьте, что вы получаете, если выше критерии не то, что вам нужно. – CodeWithCoffee

+0

@dogol, похоже, что 'where' нужна строка, но вы передаете целое число. Попробуйте передать '(string) $ nip' вместо этого в ваш PHP-контроллер. Я не знаю, CI, хотя - убедитесь, что это ускользнуть/привязка для вас, чтобы избежать SQL-инъекции. – halfer

Смежные вопросы