PHP-Laravel : how to Load Ajax data after selected changes from dropdown?

标签 php jquery ajax laravel laravel-5.2

我想在从文本框中的下拉列表中选择一个值后加载一些 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>

这是我的 Controller

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>

最佳答案

在你的 route (routes/web.php)

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

在你的 Controller 中(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 脚本中您可以使用以下至少一种方式

  1. 在javascript代码中使用绝对url

    var base_url = 'http://localhost/laravel'
    $.ajax({
           type: "GET",
           url : base_url+"/ajaxteach",
           data : dataString,
           success : function(data){
                  console.log(data);
           }
    
  2. 在路由中使用 url()

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

关于PHP-Laravel : how to Load Ajax data after selected changes from dropdown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36855854/

相关文章:

php - 告诉 Apache 服务器像 PHP 一样处理 .js 和 .css 文件是否安全?

PHP - 如何获得 token ?

jquery - 检测浏览器后退按钮按下 - Jquery Mobile

c# - 如何从子页面触发更新面板回发?

javascript - 如何防止元素脱离 DOM 错误?

php - 如何将 Javascript 对象传递给 php 以进行 sql 查询并将数据作为下载的 csv 文件返回?

php - 获取我的应用程序数据 iTunes Connect

jquery - 使用 jquery 按钮单击更改 bootstrap div 类

jQuery getJSON 多数组

ajax - 我可以使用 jQuery AJAX 将图像从另一个域发布到我的 Rails 应用程序吗?