【发布时间】:2021-05-10 17:46:01
【问题描述】:
我在使用 jQuery 从自动完成文本中显示主键时遇到问题。
我从这个来源修改了代码:https://www.webslesson.info/2018/06/ajax-autocomplete-textbox-in-laravel-using-jquery.html
不同之处在于,我尝试从我选择的自动完成文本中添加主键,然后从控制器发送到 HTML 代码以查看。
这是我的控制器(我认为这里没有问题)
function getProject(Request $request)
{
if($request->get('query'))
{
$query = $request->get('query');
$listProject = DB::table('project')
->select('PK_Project', 'projectName')
->where('projectName', 'ILIKE', "%{$query}%")
->get();
$data = array(
'listProject' => $listProject,
);
echo json_encode($data);
}
}
我的看法:
<script>
$(document).ready(function(){
$('#projectname').keyup(function(){
var query = $(this).val();
var listProject = '';
if(query != '')
{
var _token = $('input[name="_token"]').val();
$.ajax({
url:"{{ route('getProject') }}",
method:"POST",
data:{query:query, _token:_token},
dataType:'JSON',
success:function(data){
$('#projectList').empty();
$('#projectList').fadeIn();
$('#projectList').append(
'<ul class= "dropdown-menu" style= "display:block; position:relative">'
);
data.listProject.forEach(element => {
// I can get project name list here
$('#projectList').append( "<li><a href='#'>" + element.projectName + "</a></li>");
// I can get project Primary Key list here
$('#pkproject').append(element.PK_Project);
});
$('#projectList').append('</ul>');
}
});
}
});
$(document).on('click', 'li', function(){
$('#projectname').val($(this).text()); // I can get project name that I clicked
$('#pkproject').val($(this).text()); // This is what I asked (how?)
$('#projectList').fadeOut();
});
});
</script>
第二个问题是如何修复下拉菜单(文本在框外)
【问题讨论】:
标签: jquery ajax laravel autocomplete