【问题标题】:How to return data from ajax to select tag如何从ajax返回数据以选择标签
【发布时间】:2018-11-23 11:21:58
【问题描述】:

我在 auth.register 中有两个选择标签。

<div class = "form-group col-md-6 col-sm-6">
    <label for="years">Name of Course*</label>     
    <select class="form-control input-sm required" id="courses_name" name="alumni_course">
        <option value="">-- Select Any one --</option>
        @foreach($coursename as $coursenames)
            <option value="{{ $coursenames->id.','.$coursenames->coursename }}" >{{ $coursenames->coursename }}</option>
        @endforeach
    </select>
</div>

<div class = "form-group col-md-6 col-sm-6" id="dvPassport" style="display:none">
    <label for="years">Name of Branch*</label>     

    <select class="form-control input-sm required" id="branch_name" name="alumni_branch">
        @if(isset($branchname))
            @foreach($branchname as $branchnames)
                <option value="{{ $branchnames->id }}" >{{ $branchnames->branchname }}</option>
            @endforeach
        @endif
    </select>
</div>

如果从课程名称选项中,任何人选择 B.E./B.TECH。或 DIPLOMA,然后将显示分支机构名称,并且数据将与 B.E./B.TECH 相关。或文凭。

我在同一页面中的 ajax:

<script type="text/javascript">
    $(document).ready(function() {
        $("#courses_name").change(function() {

            var courses_name1 = $("#courses_name").val();
            var courses_name2 = courses_name1.split(",");
            var id = courses_name2[0];
            var courses_name2 = courses_name2[1];
            if (courses_name2 == 'B.E./B.TECH.' || courses_name2 == 'DIPLOMA') {
                $("#dvPassport").show();
                $.ajax({
                    type: "GET",
                    url: "findbranch",
                    data: {
                        'id': id
                    },
                }).done(function(data) {
                    $("#branch_name").html(data.html);
                    //console.log(data);
                });
            } else {
                $("#dvPassport").hide();
            }
        });
    });
</script> 

路线是:

Route::get('findbranch','Auth\RegisterController@findbranch');

控制器是:

public function findbranch(Request $request)
{
    $branchname = branchname::where('course_id', $request->id)->get();
    $html = view('auth.register')->with(compact('branchname'))->render();
    return response()->json(['success' => true, 'html' => $html]);
}

但数据未显示在分支名称中。

【问题讨论】:

  • 在 ajax url 中将其更改为 '{{url("findbranch")}}' 并查看网络选项卡,它是否执行请求?
  • 请粘贴auth.register的内容。更新有问题。
  • auth.register 位于 select 标签和 ajax 之上
  • ajax 执行了吗?检查您的网络标签,看看它返回什么。
  • GET localhost/millennium_alumni_laravel/findbranch?id=7 500(内部服务器错误)

标签: laravel laravel-5


【解决方案1】:

使用

$html = view('auth.register')->with(compact('branchname'))->render();

这将解决您的问题。

编辑:

问题在于您的$("#branch_name").html(data.html);

应该是$("#branch_name").html(data);

【讨论】:

  • GET localhost/millennium_alumni_laravel/findbranch?id=7 500(内部服务器错误)
  • 如果我直接运行 localhost/millennium_alumni_laravel/findbranch?id=7 则错误:(2/2) ErrorException 未定义变量:collegename (查看:F:\xampp\htdocs\millennium_alumni_laravel\resources\views\ auth\register.blade.php)
  • 所以,这意味着您在视图内部使用了一个名为 collegename 的变量,该变量未传递给它。
  • 等一下,我在您发布的相关代码中看不到任何 collegename。执行php artisan view:clear 清理缓存视图
  • 检查你的视图是否有错误提到的变量。
【解决方案2】:

你可以试试这个代码:

$.ajax({

        url: base_url + '/findbranch',
        type: "GET",
        data: {'id': id},
        dataType: 'json',
        success: function(data) {

           $("#branch_name").html(data.html);
        },

【讨论】:

    【解决方案3】:

    测试添加:

    use App\branchname;
    

    在控制器的顶部。

    【讨论】:

    • 我从控制器中删除了一行。现在是: $branchname = branchname::where('course_id', $request->id)->get(); //$html = view('auth.register')->with(compact('branchname'))->render(); return response()->json(['success' => true, 'html' => $branchname]);
    • 它在控制台中给出对象。但未在选择中显示
    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2019-03-03
    • 2015-09-17
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多