В моем модуле мне нужна функциональность, аналогичная автозавершению. Мне нужно создать таблицу всякий раз, когда я нахожу имя. Скажем, например, если я нахожу Джона, тогда таблица должна появиться, имея все «John's в базе данных» с их другими атрибутами, такими как идентификатор электронной почты, специализация, адрес и т. Д. Затем, когда я выбираю конкретный «john» (нажав на имя/чек box/любым другим способом), его информация должна быть заполнена в моей форме автоматически. Я могу извлечь детали всех «John's using json (я напечатал в окне предупреждения), но две проблемы, с которыми я столкнулся: 1.) Я не могу создать таблицу, соответствующую« Джону » 2.) Я не знаю, как передать данные в мою форму, когда пользователь запрашивает нужную строку.Создание динамической таблицы в cakephp
Также, когда я извлекаю данные, отображаются только данные для последней записи в таблице (т. Е. Последний '' john ''); т. е. сохраняется только последний «джон». Хотя цикл for показывает все «john».
Я вставляю свой контроллер и просматриваю код для справки.
Пожалуйста, предложите что-нибудь.
//Controller:
public function getmasterdata($id=NULL)
{
$this->layout = 'ajax';
$this->autoRender = false;
$q=$this->request->data['nns'];
$details=array();
$this->loadModel('Approved_panel');
$conditions = 'Approved_panel.name LIKE "%'.$q.'%"';
$countt=$this->Approved_panel->find('count',array('conditions'=>$conditions));
$masterdata=$this->Approved_panel->find('all',array('conditions'=>$conditions));
//print_r ($masterdata);
foreach($masterdata as $m)
{
$details=$m['Approved_panel'];
print_r($details);
}
//print_r($details);
$data='';
foreach($details as $key=>$value)
{
$data.=$key.'//'.$value.'&&&';
}
print_r($data);
//echo json_encode($details);
exit;
}
`
//View:
$("#name"+lastChar).on('keyup',function()
{
$('#master_details').show();
var namess=$('#name'+lastChar).val();
//alert(namess);
$.ajax({
cache: false,
dataType: "html",
type: "POST",
evalScripts: true,
url: '<?php echo Router::url(array('controller'=>'Panels','action'=>'getmasterdata'));?>',
data: ({nns:namess}),
success: function(result){
alert(result);
$('#detailss').val(result);
}
});
});
`
//This is the div in which data should be displayed. These are the headers. I don’t know how to get data into this.
<div id="master_details">
<h2 align="center">Previous Panel Member's Details</h2>
<table>
<thead>
<tr>
<th> Name</th>
<th> Designation</th>
<th> Specialization</th>
<th> University</th>
<th> College</th>
<th> Address</th>
<th> Phone</th>
<th> Email</th>
<th> Papercode</th>
<th> Action</th>
</tr>
</thead>
</table>
</div>
Он возвращает данные. Данные печатаются в окне предупреждения. Проблема в том, что в массиве $ details есть только последние данные. – Nikita