使用带有Laravel的Ajax从数据库中检索信息

时间:2018-07-04 16:19:40

标签: php ajax laravel

我只是使用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的下拉列表从数据库中获取库存项目的描述。请帮我看看并相应地指导我。

2 个答案:

答案 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;       
    }