2017-04-24 53 views
0

夥伴編碼器,jquery append dropdown不會顯示數值[Laravel 5]

我正在這裏的小牆上跑。我目前正在爲我的實習公司實現一個項目,我必須做的是在他們的CRM中創建一個小時註冊應用程序。

我的問題是:我如何使用PHP中收到的值在Jquery下拉字段中下拉菜單。 (我之所以要這樣做的原因是因爲用戶必須填寫項目名稱和任務:project-taskname kinda deal。這兩個值在我的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-> project_id)!!} - {!! \ App \ Subproject :: getTaskTitle($ hoursregistration-> 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 + 
+0

真的不清楚具體的問題是什麼。但請注意,ID不能在頁面中複製......根據定義它們是唯一的。也可能需要使用***事件委派***來說明在添加事件偵聽器時不存在的元素。 – charlietfl

+0

ID不會重複,它們會顯示,稍後會使用。據我的理解。我想在這裏實現的是,現在(Ajax)工作中的(注意,日期和小時)部分。但是包含子項目和project_id的下拉菜單不包含。當我嘗試在javascript append下拉菜單中使用這些值時。它沒有在下拉列表中顯示任何內容,導致無法使用ajax將新行發佈到我的數據庫,因爲我得到一個沒有輸入的錯誤 – Kayelder

+0

我將檢查事件委託出 – Kayelder

回答

0

我忘記了選擇標記中的選項標記。 A.k.a我覺得真的很愚蠢