php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?

Posted

技术标签:

【中文标题】php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?【英文标题】:php - Laravel : how to Load Ajax data after selected changes from dropdown? 【发布时间】:2016-08-19 17:54:23 【问题描述】:

我想在从文本框中的下拉列表中选择一个值后加载一些 ajax 数据。

例如:从下拉列表中选择教师后,应加载教师剩余学分和 credit_taken 值。 ajax 怎么做?

注意:这里的教师值是从 Ajax 中的另一个下拉列表中选择的

<script>
      $('#teacher').on('change',function(e)            
           var teach_id = $('#teacher option:selected').attr('value');

             var info=$.get("url('ajax-teach')",teach_id:teach_id);
               info.done(function(data)     
                  $.each(data,function(index,subcatObj)

               /// Here will  be the loaded code   ///

                    );                    
        );

        info.fail(function()
          alert('ok');
        );
       );
    </script>

这是我的控制器:

Route::get('ajax-teach',function(Request $request) 
        $teach_id = $request::input(['teach_id']);          
        $teachers=\App\Teacher::where('teacher_id','=',$teach_id)->get();
        return Response::json($teachers);   
);

这是查看页面:

<div class="form-group">
    <label for="">Teacher</label>
    <select class="form-control input-sm" required name="teacher_id" id="teacher" >
    <option value=""></option>
    </select>
</div> 


<div class="form-group">
  <label>Credit to be Taken</label>         
  <input type="text" name="credit_taken" id="credit_taken" class="form-control" required placeholder="Credit to be Taken">
</div>

<div class="form-group">
  <label>Remaining Credit</label>         
  <input type="text" name="remaining_credit" class="form-control" required placeholder="Remaining Credit">
</div>

【问题讨论】:

你有多重选择吗?,老师json长什么样子? 看这里老师来自部门下拉菜单。当用户选择特定部门时,教师列表将显示在下一个下拉列表中,属于该部门。当我选择老师时,我必须在我提到的那个文本框中显示特定的老师数据。 【参考方案1】:

在您的路线中 (routes/web.php)

Route::get( '/ajaxteach', array(
    'as' => 'ajaxteach',
    'uses' => 'TeachController@get_teach'
) );

在您的控制器中 (app/Http/Controllers/TeachController.php)

class TeachController extends Controller

    public function get_teach(Illuminate\Http\Request $request)
    
        $teach_id = $request->get('teach_id');          
        $teachers=\App\Teacher::where('teacher_id','=',$dept_id)->get();
        return response()->json(['response' => $teachers]);
    

那么在你的 AJAX 脚本中你至少可以使用以下方式之一

    javascript 代码中使用绝对网址

    var base_url = 'http://localhost/laravel'
    $.ajax(
           type: "GET",
           url : base_url+"/ajaxteach",
           data : dataString,
           success : function(data)
                  console.log(data);
           
    

    在路由中使用url()

    $.ajax(
           type: "POST",
           url : "url('ajaxteach')",
           data : dataString,
           success : function(data)
                  console.log(data);
           
    

【讨论】:

您忘记回显网址 它将如何将数据发送到我的 credit_taken 文本框或查看页面中的 remaining_credit 文本框?只是问我是 Ajax 的新手! Randeep Singh ,你可以使用:$.ajax( type: "POST", url : "url('ajaxteach')", data : dataString, success : function(data ) var json_obj = jQuery.parseJSON(data); $('#credit_taken').val(json_obj.credit_taken) ; $('#remaining_credit').val(json_obj.remaining_credit) ; 查看页面会有什么变化?如何捕捉视图中的数据?对于 credit_taken 或 remaining_credit 。等

以上是关于php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在从下拉菜单中进行选择后显示复选框列表,具体取决于下拉菜单选择?

如何在页面加载时隐藏所有表单字段并在从下拉列表中选择时启用

如何在从数据库填充的 Jquery 下拉列表中显示选中的值

在 laravel 中创建一个下拉列表来选择用户角色 - laravel

Laravel-从下拉列表中选择值后自动填充输入

在从 API 调用填充的反应选择下拉列表中设置默认值