フェローコーダー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 +
具体的な問題が本当に明確ではない。ただし、IDはページ内で重複することはできません...定義によって一意です。 – charlietfl
IDが重複していない場合は表示され、後で使用されるため、イベントリスナーを追加するときに存在しない要素を説明するために、***イベント委任***を使用する必要があります。私の理解が行く限り。私がここで達成したいのは、今、Ajaxの仕事(ノート、日付、時間)の部分です。しかし、サブプロジェクトとproject_idを含むドロップダウンでは表示されません。これらの値をjavascriptのappendドロップダウンで使用しようとすると、ドロップダウンに何も表示されないので、入力がないというエラーが表示されるので、ajaxを使用してデータベースに新しい行をポストできません – Kayelder
イベントの委任をチェックします – Kayelder