Jquery追加下拉列表不会显示值[Laravel 5]

时间:2017-04-24 11:21:28

标签: javascript php jquery ajax laravel-5

研究员,

我在这里对着一堵小墙跑。我目前正在为我的实习公司实现一个项目,我要做的就是在他们这里的CRM中制作一个小时的注册应用程序。

我的问题是:如何使用我在PHP中收到的值来下拉Jquery下拉字段。 (我之所以这么想是因为用户必须填写项目的标题和任务:project - taskname有点交易。这两个值在我的PHP中显示。但是当我尝试在我的Jquery中使用它时哟附加下拉列表,除了空的下拉框之外,它不会显示任何值

   $("#addField").click(function (){
      var user_id = $('#user_id').val();
      project_id = $('#project_id').val();
      note = $('#note').val();
      date = $('#date').val();
      hours = $('#hours').val();
      var markup = "<tr id='addRow-"+(addRows)+"'><td hidden>{{  $user_id->first_name }}</td></td>"
      + user_id + 
      " <td> <select class='project_id' value='{!! \App\Project::getCompanyName($hoursregistration->project_id) !!} - {!! \App\Subproject::getTaskTitle($hoursregistration->subproject_id)!!}'></td>"
      + project_id +
      "<td><input type='text' value='{{ $hoursregistration->note }}' name='note' class='note'></td></td>"
      + note +   
      "<td><input type='date' class='date' value='{!! \App\Helpers::dateFormat($hoursregistration->date) !!}'></td>"
      + date +
      "<td><input type='hours' class='hours' value='{{ $hoursregistration->hours }}'></td></td>"
      + hours +
      "<td><button id='btn-save' name='btn-save' class='btn btn-default btn-xd btn-save save-hoursregistration' value='' rel='addRow-"+addRows+"'>Save</button>"
      $("table tbody").append(markup);

这是我写的Jquery函数,它在时间表中添加了一个新行。

 <tbody id="content">
                @foreach ($hoursregistrations as $hoursregistration)
                <tr>
                   <td id="user_id" hidden>{{  $user_id->first_name }}</td>
                   <td id="project_id subproject_id">{!! App\Project::getCompanyName($hoursregistration->project_id) !!} - {!! \App\Subproject::getTaskTitle($hoursregistration->subproject_id)!!}</td>      
                   <td id="note">{!! $hoursregistration->note !!}</td>    
                   <td id="date">{!! \App\Helpers::dateFormat($hoursregistration->date) !!}</td>
                   <td id="hours">{!! $hoursregistration->hours !!}</td>
                   <td>
                    <button id="btn-edit" name="btn-edit" class="btn btn-warning btn-xs btn-detail open-modal" value="{{$hoursregistration->id}}">Edit</button>
                    <button id="btn-delete" name="btn-delete" class="btn btn-danger btn-xs btn-delete delete-hoursregistration" value="{{ $hoursregistration->id }}">Delete</button>
                    <button id="btn-save" name="btn-save" class="btn btn-default btn-xd btn-save save-hoursregistration" value="">Save</button>
                </td>

这是我编写的代码片段,用于显示应用程序视图表中的值。

addRows++;

      $(".btn-save").click(function(){

        rowId = $(this).attr('rel');

        var url = '/hoursregistrations/create';
        var data = {
            user_id: {{  $user_id->id }},
            project_id: $("tr#addRow-"+rowId + " .project_id").val(),
            note: $("tr#addRow-"+rowId + "  .note").val(),
            hours: $("tr#addRow-"+rowId + " .hours").val(),
            date: $("tr#addRow-"+rowId +  " .date").val(),
        };

        $.ajax({
            headers:{ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
            type: 'post',
            url: url,
            dataType: 'json',
            data: data,
            success: function(data) {
                console.log(data);
                $("table tbody").append(markup);
        //redirect
        if(type=="exit")
            window.location = "create.blade.php";
    }
});

这是我的Ajax功能,重定向到刀片文件。并在我的控制器中执行存储功能。

public function store(Request $request)
{
    //$hoursregistration= new Hoursregistration($request->except(''));


    $input = Input::all();
   //dd($input);
    $hoursregistration = new Hoursregistration();

    $hoursregistration->user_id = Sentinel::getUser()->id;
    $hoursregistration->project_id = $input['project_id'];
    $hoursregistration->subproject_id = $input['subproject_id'];
    $hoursregistration->date = $input['date'];
    $hoursregistration->note = $input['note'];
    $hoursregistration->hours = $input['hours'];
    $hoursregistration->save();
    return redirect('hoursregistrations')->with('success', Lang::get('message.success.create'));
}

这是我的控制器文件。

总结:我怎样才能添加{!! App \ Project :: getCompanyName($ hoursregistration-&gt; project_id)!!} - {!! \ APP \子项目:: getTaskTitle($ hoursregistration-&GT; subproject_id)!!}

在我的Javascript追加功能中,所以我可以使用AJAX将选定的下拉值发布到数据库中。

提前道歉,因为我无法解释事情。

编辑:

<td id="project_id subproject_id">{!! App\Project::getCompanyName($hoursregistration->project_id) !!} - {!! \App\Subproject::getTaskTitle($hoursregistration->subproject_id)!!}</td> 

我的循环中显示表中行的这行代码在我的javascript下拉列表中不起作用。

 <td> <select class='project_id' value='{!! \App\Project::getCompanyName($hoursregistration->project_id) !!} - {!! \App\Subproject::getTaskTitle($hoursregistration->subproject_id)!!}'></td>"
  + project_id +

1 个答案:

答案 0 :(得分:0)

我忘记了select标签中的选项标签。 A.k.a我觉得真的很蠢