Javascript 如何在Laravel 8中显示数据库中的其他值
当我选择一个选项时,我从数据库中有一个下拉列表,我想显示与我选择的选项相关的其他数据。我怎样才能做到这一点?javascript/jquery能做到这一点吗?如果是,怎么做 以下是我的代码: HTML: 试试这个: HTML:- 您的控制器方法:- 试试这个: HTML:- 您的控制器方法:-Javascript 如何在Laravel 8中显示数据库中的其他值,javascript,php,html,jquery,laravel,Javascript,Php,Html,Jquery,Laravel,当我选择一个选项时,我从数据库中有一个下拉列表,我想显示与我选择的选项相关的其他数据。我怎样才能做到这一点?javascript/jquery能做到这一点吗?如果是,怎么做 以下是我的代码: HTML: 试试这个: HTML:- 您的控制器方法:- 试试这个: HTML:- 您的控制器方法:- 从数据库中获取值“age”,并更改控制器,如下所示: public function index() { $memberlist = Member::select('id','na
从数据库中获取值“age”,并更改控制器,如下所示:
public function index()
{
$memberlist = Member::select('id','name', 'age')->get();
return view('basic.dropdownfromdb',compact('memberlist'));
}
在事件更改中,使用以下选项获取当前选定的选项:
var nowAge = $(this).children(':selected').data('age');
以下代码段仅打印所选值,并使用$this.next'input.focus.valnowAge;将nowAge设置为下一个输入字段
使用该值添加以下jQuery逻辑
$(".pet-select").change(function () {
var nowAge = $(this).children(':selected').data('age');
console.log(nowAge);
$("#age-value").val(nowAge);
});
最后的HTML代码段应该在下面
<div class="container-fluid">
<div class="row">
<h1>Dropdown value from database</h1>
<br><br><br>
</div>
<form action="dropdownfromdb" method="post">
@csrf
<div class="row">
<div class="col">
<select class="pet-select" name="pet">
<option>Choose Name</option>
@foreach($memberlist as $member)
<option value="{{$member->id}}" data-age="{{$member->age}}">{{$member->name}}</option>
@endforeach
</select><br><br>
</div>
<div class="col-10">
<label>His age is: </label><input type="number" id="age-value" name="age" value="">
</div>
</div>
</form>
</div>
希望它能解决你的问题
我已经为这个问题创建了一个完整的HTML源代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dropdown value from database</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<h1>Dropdown value from database</h1>
<br><br><br>
</div>
<form action="dropdownfromdb" method="post">
<div class="row">
<div class="col-sm-4">
<select class="pet-select" name="pet">
<option>Choose Name</option>
<option value="ahmad" data-age="21">Ahmad</option>
<option value="abu" data-age="27">Abu</option>
<option value="ali" data-age="21">Ali</option>
</select><br><br>
</div>
<div class="col-sm-8">
<label>His age is: </label><input type="number" id="age-value" name="age" value="">
</div>
</div>
</form>
</div>
<script>
$(document).ready(function(){
$(".pet-select").change(function () {
var nowAge = $(this).children(':selected').data('age');
console.log(nowAge);
$("#age-value").val(nowAge);
});
})
</script>
</body>
</html>
从数据库中获取值“age”,并更改控制器,如下所示:
public function index()
{
$memberlist = Member::select('id','name', 'age')->get();
return view('basic.dropdownfromdb',compact('memberlist'));
}
在事件更改中,使用以下选项获取当前选定的选项:
var nowAge = $(this).children(':selected').data('age');
以下代码段仅打印所选值,并使用$this.next'input.focus.valnowAge;将nowAge设置为下一个输入字段
使用该值添加以下jQuery逻辑
$(".pet-select").change(function () {
var nowAge = $(this).children(':selected').data('age');
console.log(nowAge);
$("#age-value").val(nowAge);
});
最后的HTML代码段应该在下面
<div class="container-fluid">
<div class="row">
<h1>Dropdown value from database</h1>
<br><br><br>
</div>
<form action="dropdownfromdb" method="post">
@csrf
<div class="row">
<div class="col">
<select class="pet-select" name="pet">
<option>Choose Name</option>
@foreach($memberlist as $member)
<option value="{{$member->id}}" data-age="{{$member->age}}">{{$member->name}}</option>
@endforeach
</select><br><br>
</div>
<div class="col-10">
<label>His age is: </label><input type="number" id="age-value" name="age" value="">
</div>
</div>
</form>
</div>
希望它能解决你的问题
我已经为这个问题创建了一个完整的HTML源代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dropdown value from database</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<h1>Dropdown value from database</h1>
<br><br><br>
</div>
<form action="dropdownfromdb" method="post">
<div class="row">
<div class="col-sm-4">
<select class="pet-select" name="pet">
<option>Choose Name</option>
<option value="ahmad" data-age="21">Ahmad</option>
<option value="abu" data-age="27">Abu</option>
<option value="ali" data-age="21">Ali</option>
</select><br><br>
</div>
<div class="col-sm-8">
<label>His age is: </label><input type="number" id="age-value" name="age" value="">
</div>
</div>
</form>
</div>
<script>
$(document).ready(function(){
$(".pet-select").change(function () {
var nowAge = $(this).children(':selected').data('age');
console.log(nowAge);
$("#age-value").val(nowAge);
});
})
</script>
</body>
</html>
是的,您将需要js,但您首先必须获得$memberlist,而不仅仅是id和名称。如果你想要年龄,那么在Member::selectYup中添加'age',我已经选择了年龄,但是如何使用javascript?你将$memberlist传递给json中的js,然后编写一个事件,在选择下拉列表时触发,这将读取当前选定的id,并从id中选择成员,然后将该成员的年龄放入文本框。谢谢你的想法,但你能告诉我吗?我绝对没有Javascript方面的经验,也没有尝试学习js的经验,你需要js,但你首先必须获得$memberlist,而不仅仅是id和名称。如果你想要年龄,那么在Member::selectYup中添加'age',我已经选择了年龄,但是如何使用javascript?你将$memberlist传递给json中的js,然后编写一个事件,在选择下拉列表时触发,这将读取当前选定的id,并从id中选择成员,然后将该成员的年龄放入文本框。谢谢你的想法,但你能告诉我吗?我绝对没有Javascript方面的经验,也没有尝试学习如何感谢你,但它仍然没有显示任何输入。我已经编辑了答案。希望现在一切都会好起来…:太好了。我对你的答案做了一些修改,解决了我的问题。非常感谢你!!!谢谢,但它仍然无法显示AGE的任何输入。我已编辑了答案。希望现在一切都会好起来…:太好了。我对你的答案做了一些修改,解决了我的问题。非常感谢你!!!
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dropdown value from database</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<h1>Dropdown value from database</h1>
<br><br><br>
</div>
<form action="dropdownfromdb" method="post">
<div class="row">
<div class="col-sm-4">
<select class="pet-select" name="pet">
<option>Choose Name</option>
<option value="ahmad" data-age="21">Ahmad</option>
<option value="abu" data-age="27">Abu</option>
<option value="ali" data-age="21">Ali</option>
</select><br><br>
</div>
<div class="col-sm-8">
<label>His age is: </label><input type="number" id="age-value" name="age" value="">
</div>
</div>
</form>
</div>
<script>
$(document).ready(function(){
$(".pet-select").change(function () {
var nowAge = $(this).children(':selected').data('age');
console.log(nowAge);
$("#age-value").val(nowAge);
});
})
</script>
</body>
</html>