【问题标题】:How can i automate my html form through ajax and php In Laravel 5如何在 Laravel 5 中通过 ajax 和 php 自动化我的 html 表单
【发布时间】: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 调用它,触发表单更新。
  • 你能解释一下或者给我一个样例教程吗

标签: php ajax laravel-5


【解决方案1】:

我会建议您阅读一些在线教程或内容来教您 ajax。这是一个可能有帮助的链接:

https://www.w3schools.com/js/js_ajax_intro.asp

【讨论】:

    【解决方案2】:

    删除了这个无用的答案,因为这个人正在使用 Laravel。

    【讨论】:

    • 很好,但要小心你的 sql 代码容易受到 sql 注入的影响
    • 我也在为这个项目使用 Laravel 5.. 这个代码在那里不起作用
    猜你喜欢
    • 2011-02-12
    • 2016-08-24
    • 2016-09-30
    • 2015-07-17
    • 1970-01-01
    • 2015-07-28
    • 2017-04-07
    • 2014-05-08
    • 2015-12-04
    相关资源
    最近更新 更多