0
業務邏輯我如何使用javascript
用戶可以設置,更新和刪除時,他們將可用於臨時工作PHP檢索數據。我爲jQuery UI設置了multiDatePicker。它允許用戶選擇多個日期。
其目前正在
用戶如何能夠選擇多個日期,其日期都通過AJAX發佈到壓延機控制器
的問題
我可以訪問的日期在我的回調函數中很好,但是當我嘗試檢索回調函數之外的以前選擇的日期時,它似乎不起作用。所以我想要完成的是以下內容。
- 用戶選擇幾個不同的日期然後關閉日曆。他們在稍後的時間點回來,並可以看到他們以前選擇的日期。
CalenderController
public function calendar(){
$id = Auth::user()->id;
$user_ids = DB::table('availability')->lists('user_id');
$comma_separated = implode(",", $_POST['dates']);
if (empty($user_ids)){
DB::table('availability')->insert(array('user_id' => $id, 'dates_available' => $comma_separated));
return Response::json(array("dates" => $comma_separated));
}else{
foreach ($user_ids as $user_id){
//if user id exit then add new dates
if ($user_id == $id) {
DB::statement("update availability set dates_available = concat(dates_available, ',{$comma_separated}') where user_id = '{$id}'");
return Response::json(array("dates" => $comma_separated));
}
}
}
}
JS/AJAX
var today = new Date();
var y = today.getFullYear();
var arr=[];
$('#dashboard-availability-calender').multiDatesPicker({
addDates: "how do i retrieve the dates from db ?",
minDate: today,
numberOfMonths: [1,1],
showCurrentAtPos: today.getMonth(),
onSelect: function(date) {
var found = jQuery.inArray(date, arr);
if (found >= 0) {
// Element was found, remove it.
arr.splice(found, 1);
} else {
// Element was not found, add it.
arr.push(date);
}
}
});
$(".mdp_button").click(function(event) {
event.preventDefault();
console.log('user clicked');
for (var i = 0; i < arr.length; i = i + 1) {
console.log("dates selectd " + arr[ i ]);
}
if (arr.length === 0) {
alert("No dates selected.");
} else {
var dates = jQuery("form#mdp_form").serialize() + "&" + $.param({ dates: arr }, false);
$.ajax({
url: '/user/dashboard',
data: dates,
type: 'POST',
beforeSend: function() {
jQuery('.ui-datepicker-calendar').addClass('calenderDisabled');
$('.mdp_button').button('loading');
},
success: function(data) {
//I can retrieve my data like this data.dates
setTimeout(function() {
jQuery('.sending').hide().remove();
jQuery('.mdp_button').addClass('btn-success').button('complete');
jQuery('.mdp_button').removeClass('btn-success').button('reset');
jQuery('.ui-datepicker-calendar').removeClass('calenderDisabled');
jQuery('#response').html('<div class="alert alert-success fade in"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>Your dates have been saved successfully</div>');
}, 500)
}
});
}
});
你確定這是一個Laravel問題,而不是一個純粹的JS/ JQuery的問題? – chris342423
@ chris342423你是對的我改變我的問題 – elodev
好吧。也許你仍然應該添加一個你使用Laravel的提示:P – chris342423