两个代码块分别正常工作。他们需要结合起来。
第1区确实:
点击按钮后,它会将预订开始和出发日期发送到数据库。
然后控制器在表格中循环并获取所有预订的开始和结束日期以及介于两者之间的日期。
响应被发送到jquery,我实际上可以在我的View页面中看到它打印出来。凉。您将在代码中通过名称识别:data
2)第二个代码块使用数组中的一些测试日期,并将日历标记为红色。所以它适用于挑选。
因此我需要的是实际将响应数据放在数组所在的位置,而不是测试日期,我实际上有控制器返回的那些:
<script>
jQuery(document).ready(function(){
$('#boton').click(function(){
var startdate = $('#start_date').val();
var owner =1;
var user = 6;
var enddate = $('#end_date').val();
$url = '{{URL::route('reservations')}}';
$.post($url, {arrival:startdate, departure:enddate, user_id:owner, booked_by:user}, function hola (data){
$('#test').text(data);
});
});
$myBadDates = new Array("12 September 2015","21 September 2015");
$(function() {
$( "#start_date, #end_date" ).datepicker({
dateFormat: 'dd MM yy',
beforeShowDay: checkBadDates
});
});
function checkBadDates(mydate){
var $return=true;
var $returnclass ="available";
$checkdate = $.datepicker.formatDate('dd MM yy', mydate);
for(var i = 0; i < $myBadDates.length; i++)
{
if($myBadDates[i] == $checkdate)
{
$return = false;
$returnclass= "unavailable";
}
}
return [$return,$returnclass];
}
});
</script>
作为一个ADD-ON信息示例。我正确得到的响应类型是像这样的json系列:
["16 August 2015","17 August 2015","18 August 2015","19 August 2015","20 August 2015","23 August 2015","24 August 2015","25 August 2015","26 August 2015","27 August 2015","14 September 2015","15 September 2015","16 September 2015","17 September 2015"]
应该很容易,但我被困了好几天......
更新II
我已经制作了另一个版本,我认为它更接近但是我只得到一个错误,说没有定义对函数pasamedata的调用。
<script>
jQuery(document).ready(function(){
$('#boton').click(function(){
var startdate = $('#start_date').val();
var owner =1;
var user = 6;
var enddate = $('#end_date').val();
$url = '{{URL::route('reservations')}}';
$.post($url, {
arrival: startdate,
departure: enddate,
user_id: owner,
booked_by: user
}, function hola (data) {
$('#test').text(data);
pasamedata(data);
});
});
$(function pasamedata(data) {
var array = data;
$( "#start_date, #end_date" ).datepicker({
dateFormat: 'dd MM yy',
beforeShowDay: function(date) {
if($.inArray($.datepicker.formatDate('dd MM yy', date ), array) > -1)
{
return [false,"","Booked out"];
}
else
{
return [true,'',"available"];
}
}
});
});
});
</script>
谢谢