【发布时间】:2017-03-19 06:45:46
【问题描述】:
大家,我是 PHP 和 Ajax 的新手,我想在我的项目中创建一个函数,我想在其中做什么当我在我的表单中选择疾病类型时,如图所示
当我选择病毒性疾病时,我想从数据库中获取病毒性疾病的数据而不刷新页面
我的代码是
<legend>Patient Details</legend>
<div class="form-group">
<label for="select" class="col-lg-2 control-label">Disease Type</label>
<div class="col-lg-4">
<select class="form-control" id="disease_type">
<option>Select Disease Type</option>
<option value="ViralD">Viral Diseases</option>
<option value="InfectionD">Infection Diseases </option>
<option value="CommonD">Common Diseases</option>
<option value="NewD">New Diseases </option>
</select>
</div>
<label for="select" class="col-lg-2 control-label">Disease Name</label>
<div class="col-lg-4">
<select class="form-control" id="select">
<option>Select Disease Name</option>
<option>2-5</option>
<option>5-10</option>
<option>10-20</option>
<option>20-40</option>
</select>
</div>
</div>
这是我的脚本
<script type="text/javascript">
$('#disease_type').change(function () {
var id = $(this).find(':selected')[0].id;
//alert(id);
$.ajax({
type: 'POST',
url: 'fetching_names',
data: {
'id': id
},
success: function (data) {
// the next thing you want to do
var $country = $('#disease_type');
$country.empty();
$('#disease_name').empty();
for (var i = 0; i < data.length; i++) {
$country.append('<option id=' + data[i].sysid + ' value=' + data[i].name + '>' + data[i].name + '</option>');
}
//manually trigger a change event for the contry so that the change handler will get triggered
$country.change();
}
});
});
</script>
这是我的控制器功能
class PatientController extends Controller
{
public function get_disease_type()
{
$disease_type = DB::table('disease_type')->get();
return view('admin/add_patient', compact('disease_type'));
}
public function get_disease_name(Request $request)
{
echo $request->disease_type;
die();
$disease_name = DB::table('disease')
->where("disease_name",$request->disease_type)
->get();
//return view('add-patient', compact('disease'));
return response()->json($disease_name);
}
}
还有我的路线
Route::get('/fetching_names', 'PatientController@get_disease_name');
【问题讨论】:
-
创建一个返回 JSON 的端点,用 AJAX 调用它,触发表单更新。
-
你能解释一下或者给我一个样例教程吗