Codeigniter Автозаполнение Несколько полей не работают должным образом

Я хочу использовать jQuery для автоматического заполнения нескольких полей в рамках codeigniter, о которых я говорил этот tutorial. Но мой поиск не работает. Поля с текстом не показывают список автозаполнения.
вот мой код, пожалуйста, помогите мне решить эту проблему.

Посмотреть
…………………

<div class="row">
<form action="" name="students" method="post" id="students">
<input type="text" name="patientId" id="patientId_1" class="ui-autocomplete-input">
<input type="text" name="firstname" id="firstname_1" class="ui-autocomplete-input">
<input type="text" name="nic" id="nic_1" class="ui-autocomplete-input">
<input type="text" name="telephone" id="telephone_1" class="ui-autocomplete-input">
</form>
</div>

JQuery
…….

$('#patientId_1').autocomplete({
source: function( request, response ) {
$.ajax({
url : 'http://localhost/cafdc/BillingController/test',
dataType: "json",
data: {
name_startsWith: request.term,
type: 'patient_table',
row_num : 1
},
success: function( data ) {
response( $.map( data, function( item ) {
var code = item.split("|");
return {
label: code[0],
value: code[0],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 0,
select: function( event, ui ) {
var names = ui.item.data.split("|");
$('#firstname_1').val(names[1]);
$('#nic_1').val(names[2]);
$('#telephone_1').val(names[3]);
}
});

контроллер
…………………..

public function test()
{
$data=$this->Billing_Model->get_data();
echo json_encode($data);
}

модель
………………..

 public function get_data()
{
if($_POST['type'] == 'patient_table'){
$row_num = $_POST['row_num'];
$result =$this->db->query( "SELECT  patientId, fname, nic, tpnumber FROM tblpatient where name LIKE '".strtoupper($_POST['name_startsWith'])."%'");
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['patientId'].'|'.$row['fname'].'|'.$row['nic'].'|'.$row['tpnumber'].'|'.$row_num;
array_push($data, $name);
}

}
}

0

Решение

Ваш код не работает, потому что вы не return любые данные из модели

public function get_data()
{
if($_POST['type'] == 'patient_table'){
$row_num = $_POST['row_num'];
$result =$this->db->query( "SELECT  patientId, fname, nic, tpnumber FROM tblpatient where name LIKE '".strtoupper($_POST['name_startsWith'])."%'");
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['patientId'].'|'.$row['fname'].'|'.$row['nic'].'|'.$row['tpnumber'].'|'.$row_num;
array_push($data, $name);
}
return $data;// return your data

}
}
1

Другие решения

Вы должны установить type:"POST" в вызове AJAX иначе он будет принимать это как GET так что добавьте type в вашем $.ajax звоните как,

$.ajax({
url:'...',
type:"POST",// add this line in your ajax call
....
})
0

По вопросам рекламы [email protected]