我知道有很多關於此主題的文章,但是我無法根據自己的需求使用它們中的任何文章。目的是在日期選擇器中使用變量seconddivval並顯示可用日期。在另一個函數中使用函數中的Javascript變量
我有一個隱藏輸入一個PHP foreach循環
<td class='myArray'>
<input type="hidden" class="activedates" value="<?php echo "['".implode("','",$newactivedate)."'];"; ?>">
當myArray的點擊,這個JavaScript函數返回上面的輸入值
$('.myArray').click(function() {
seconddivval = $(this).find('input.activedates').val();
});
上述所有工作正常,但我需要使用變量seconddivval in this function
function available(date) {
dmy = date.getDate() + '-' + (date.getMonth()+1) + '-' +
date.getFullYear();
if ($.inArray(dmy, seconddivval) != -1) {
return [true, ""];
} else {
return [false,""];
}
}
$(".datefromavailable").datepicker({
minDate: 0,
dateFormat: 'M dd, yy',
changeMonth: true,
changeYear: true,
numberOfMonths: 2,
beforeShowDay: available,
onClose: function (selectedDate) {
$(".datetoavailable").datepicker("option", "minDate", selectedDate);
var days_to_add = 365, // SET DAYS HERE
parsed_date = new Date($.datepicker.parseDate('M dd, yy', selectedDate)),
add_year = new Date(parsed_date.setDate(parsed_date.getDate() + days_to_add)),
formatted_date = $.datepicker.formatDate('M dd, yy', add_year);
$(".datetoavailable").datepicker('option', 'maxDate', formatted_date);
$(this).parent().next().children().focus();
setTimeout(function() {
$(this).next().datepicker('show')
},0);
}
});
$(".datetoavailable").datepicker({
minDate: 0,
dateFormat: 'M dd, yy',
changeMonth: true,
changeYear: true,
numberOfMonths: 2,
beforeShowDay: available,
maxDate: '+1y'
});
});
我相信這很簡單,但我找不到實現目標的方法。
我試過了我能想到的一切。我聲明瞭函數外的變量,我刪除了var,我加了window.seconddivval;到點擊功能,我加在函數結束返回,...
我甚至嘗試了下面,我認爲這是正確的方式。它工作正常,如果我只有一個數組,但如果我有一個以上的數組,它只返回第一個數組:
var seconddivval = <?php echo '["' . implode('", "', $newactivedate) . '"]'; ?>;
這foreach循環也適用,但也返回第一個數組:
var seconddivval = new Array();
<?php foreach($newactivedate as $key => $val){ ?>
seconddivval.push('<?php echo $val; ?>');
<?php } ?>
我在做什麼錯?
編輯
這裏是如何
$newactivedate
形成:
$sqlactivedate = $bddp->prepare("SELECT (nullif(Adate1,'')),(nullif(Adate2,'')),(nullif(Adate3,'')),(nullif(Adate4,'')),(nullif(Adate5,'')),(nullif(Adate6,'')),(nullif(Adate7,'')),(nullif(Adate8,'')),(nullif(Adate9,'')),(nullif(Adate10,''))
FROM prices WHERE id_prices = '$id_prices'");
$sqlactivedate->execute();
$rowactivedate = array();
while ($rowactivedate = $sqlactivedate -> fetch(PDO::FETCH_ASSOC)) {
$newactivedate = array();
$newactivedate = array_filter($rowactivedate);
這些都是從數據庫中取出的2行:
Room1 → {"(nullif(Adate1,''))":"15-8-2017","(nullif(Adate2,''))":"16-8-2017","(nullif(Adate3,''))":"17-8-2017","(nullif(Adate4,''))":"18-8-2017","(nullif(Adate5,''))":"20-8-2017","(nullif(Adate6,''))":"21-8-2017","(nullif(Adate7,''))":"22-8-2017","(nullif(Adate8,''))":"25-8-2017","(nullif(Adate9,''))":"26-8-2017","(nullif(Adate10,''))":"28-8-2017"}
Room2 → {"(nullif(Adate1,''))":"1-8-2017","(nullif(Adate2,''))":"2-8-2017","(nullif(Adate3,''))":"4-8-2017","(nullif(Adate4,''))":"5-8-2017","(nullif(Adate5,''))":"28-8-2017","(nullif(Adate6,''))":"29-8-2017","(nullif(Adate7,''))":"4-9-2017","(nullif(Adate8,''))":"5-9-2017","(nullif(Adate9,''))":"6-9-2017","(nullif(Adate10,''))":"7-9-2017"}
你在哪裏調用函數'available' – Spectarion
在日期選擇器:$( 「datefromavailable」)日期選擇器({ 的minDate:0, DATEFORMAT: 'M DD,YY', changeMonth:真實, changeYear:真實, NUMBEROFMONTHS:2, beforeShowDay:可用, – Daniela
爲什麼不'如果($ .inArray(DMY,$(本).find('輸入.activedates')。val())!= -1){'?爲什麼用戶需要點擊'myArray'? – Spectarion