夥伴編碼器,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 +
真的不清楚具體的問題是什麼。但請注意,ID不能在頁面中複製......根據定義它們是唯一的。也可能需要使用***事件委派***來說明在添加事件偵聽器時不存在的元素。 – charlietfl
ID不會重複,它們會顯示,稍後會使用。據我的理解。我想在這裏實現的是,現在(Ajax)工作中的(注意,日期和小時)部分。但是包含子項目和project_id的下拉菜單不包含。當我嘗試在javascript append下拉菜單中使用這些值時。它沒有在下拉列表中顯示任何內容,導致無法使用ajax將新行發佈到我的數據庫,因爲我得到一個沒有輸入的錯誤 – Kayelder
我將檢查事件委託出 – Kayelder