2017-04-24 18 views
0

フェローコーダーJqueryの追加メニューに値が表示されません[Laravel 5]

私はここで小さな壁に向かっています。私は現在、インターンシップ会社のプロジェクトを実現しています。私がしなければならないことは、ここにあるCRMに1時間の登録アプリを作ることです。

質問:PHPで受け取った値を[Jquery]ドロップダウンフィールドにドロップダウンするにはどうすればよいですか。なぜなら、私はこれが欲しいのは、ユーザーがプロジェクトのタイトルとタスク:project-tasknameちょっとしたことを記入しなければならないからです.2つの値がPHPに表示されていますが、私がJqueryヨーヨーは、これは私がそれがタイムテーブルに新しい行を追加書いた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); 

は表示されません。

<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のappend関数内にあるので、AJAXを使用して選択したドロップダウン値をデータベースに投稿することができます。

私の事を説明することができないことを前に謝罪します。

EDIT:

<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私は本当に本当に本当に馬鹿だと感じる

関連する問題