我只是使用MVC概念从传统的PHP迁移到Laravel框架。我希望能够基于从下拉列表框中进行的选择从数据库中获取数据。我不断收到此错误: ” 抱歉,找不到您要查找的页面。 (1/1)NotFoundHttpException“。
查看我的代码: 路由文件:
Route::get('/process-grpid','PagesController@processgrpid');
我的控制器操作代码:
public function processgrpid($pno){
$pno = $request->get('pno');
$det = Stock::where('itemName',$pno)->get();
return $det;
}
我的查看页面:
<script type="text/javascript">
$(document).ready(function() {
$("select.partno").change(function(){
var selectedPno = $(".partno option:selected").val();
$.ajax(
{
type: "get",
url:"/processgrpid",
data:{pno:selectedPno},
success:function(data){
// var det = JSON.parse(data);
$("#desc").html('<input type="text" placeholder="Enter Item Description" class="form-control" name="descr" required="required"/>');
}
}
);
});
});
</script>
<table>
<tr>
<th>Item Code/Part NO:</th>
<td>
<select name="partno" class="partno form-control">
<option>Select PartNo</option>
<option value="N/A">N/A</option>
@foreach($pstock as $stock)
<option value="{{ $stock->itemName }}">{{ $stock->itemName }}</option>
@endforeach
</select></td>
<th>Description:</th>
<td id="desc"></td></tr>
<tr>
</table>
我不知道自己在做什么错。我已经检查了stackoverflow,但是没有一个满足我的需要。我想要的只是基于partno的下拉列表从数据库中获取库存项目的描述。请帮我看看并相应地指导我。
答案 0 :(得分:1)
您在通过ajax请求调用路由时犯了一个小错误。
将url:"/processgrpid"
更改为url:"/process-grpid"
。
原因:您将路线定义为
Route::get('/process-grpid','PagesController@processgrpid');
因此现在公共URL将是process-grpid
,而不是控制器功能processgrpid
。
还将控制器功能更新为:
public function processgrpid(Request $request) {
$pno = $request->get('pno');
$det = Stock::where('itemName', $pno)->get();
return $det;
}
答案 1 :(得分:0)
您应将$request
传递给您的控制器,如下所示:
public function processgrpid(Request $request){
$pno = $request->pno;
$det = Stock::where('itemName',$pno)->get();
return $det;
}