Я создаю приложение с 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
--------------------------
, как это исправить?
еще получили ошибку» Номер: ОШИБКА: оператор не существует: character variableing = integer LINE 3: WHERE «nip» = 0^СОВЕТ: оператор не соответствует указанному имени и типу аргументов. Возможно, вам нужно будет добавить явные типы приведения. SELECT "название" FROM "студент" ГДЕ "отщипнуть" = 0 Имя файла: E: \ XAMPP \ HTDOCS \ студент \ система \ базы данных \ DB_driver.php Порядковый номер: 331 – dogol
Вы звоните Аякса на функцию KeyUp, которая будет вызывать insert_member при каждом нажатии клавиши и передавать один на один алфавит. Я думаю, вы хотите передать полное имя пользователя в ajax, а затем хотите сопоставить его с функцией ajax, чтобы вы могли вызывать onchange вместо keyup. Кроме того, в insert_member, echo $ this-> input-> post ('nip'); и проверьте, что вы получаете, если выше критерии не то, что вам нужно. – CodeWithCoffee
@dogol, похоже, что 'where' нужна строка, но вы передаете целое число. Попробуйте передать '(string) $ nip' вместо этого в ваш PHP-контроллер. Я не знаю, CI, хотя - убедитесь, что это ускользнуть/привязка для вас, чтобы избежать SQL-инъекции. – halfer