2015-10-24 3 views
-1

Update Это полное обновление на мой вопросОтключить дату и время в то время Jquery из MySQL

<!doctype html> 
<html> 

<meta charset="utf-8"> 

<meta name="author" content="Amsul - http://amsul.ca"> 
<meta name="viewport" content="width=device-width,user-scalable=no"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="X-UA-Compatible" content="IE=Edge"> 

<title>Pickadate.js</title> 

<link rel="stylesheet" href="../../lib/themes/default.css"> 
<link rel="stylesheet" href="../../lib/themes/default.date.css"> 
<link rel="stylesheet" href="../../lib/themes/default.time.css"> 

<!--[if lt IE 9]> 
    <script>document.createElement('section')</script> 
    <style type="text/css"> 
     .holder { 
      position: relative; 
      z-index: 10000; 
     } 
     .datepicker { 
      display: block; 
     } 
    </style> 
<![endif]--> 


<body> 
<?php 
require 'connect-db.php'; 

    try{ 
    $stmt = $db->query("SELECT ddate FROM testdates"); 
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC); 
}catch(\PDOException $e){ 
    echo $e->getMessage(); 
} 

$json_array = json_encode($result) 

    ?> 




    <section class="section"> 

     <form> 
      <fieldset> 
       <h3><label for="datepicker_id">Pick a date.</label></h3> 

       <input 
        id="datepicker_id" 
        class="datepicker" 
        name="date" 
        type="text" 
        value="" 
        data-value=""> 

       <br><br><br><br><br> 


       <h3><label for="timepicker_id">Pick a time</label></h3> 
       <input 
        id="timepicker_id" 
        class="timepicker" 
        value="" 
        type="time" 
        name="time"> 
        <!-- valuee="2:30 AM" 
        data-value="0:00" --> 

       <!-- <button type="button">Disable all dates</button> 
       <input class="button" type="submit" value="open"> --> 
      </fieldset> 
     </form> 


     <div id="container"></div> 



    </section> 


    <script src="../jquery.1.9.1.js"></script> 
    <script src="../../lib/picker.js"></script> 
    <script src="../../lib/picker.date.js"></script> 
    <script src="../../lib/picker.time.js"></script> 
    <script src="../../lib/legacy.js"></script> 



    <script type="text/javascript"> 
    //datepicker 
    var disdates = <?php echo $json_array; ?> 


     var $input = $('.datepicker').pickadate({ 
      formatSubmit: 'yyyy/mm/dd', 
      min: true, 
      container: '#container', 
      // editable: true, 
      closeOnSelect: true, 
      closeOnClear: false, 
       disable: [ disdates 

    ] 

     }) 





     var picker = $input.pickadate('picker') 




     // picker.set('select', '14 October, 2014') 
     // picker.open() 

     // $('button').on('click', function() { 
     //  picker.set('disable', true); 
     // }); 

    </script> 



<script type="text/javascript"> 
//timepicker 

     var dtimes = new Date(2015,11,28,5,30); 
     var $timeinput = $('.timepicker').pickatime({ 
      disable: [ 
    [2,0], 
    dtimes 


    ] 


     }) 
     var timepicker = $timeinput.pickatime('picker') 

    </script> 



</body> 
</html> // i must thank users in php chatroom for helping me fix the errors. 

Это выше, является страница, на которой вы видите календарь и некоторые даты отключены, которые извлекаются из базы данных. Я использую this picker

disable: [ 
    [2015,29,9], // disables today strangely month -1 and only accepts yyy,mm,dd 
    [some other array] 

    ] 
}) 

В 'ddate' мой databese является VARCHAR, ни первичного ключа, не уникального идентификатора, ничего, содержащего

2015,9,30 
2015,9,31 
2015,10,30 
  1. значения не передаются или что-то от mysql до javascript или что-то еще, и я думаю, я хочу многомерный массив.

  2. что я хочу, чтобы массив javascript имел месяц -1, потому что, как я объяснил выше, в отключенном варианте для отключения этого дня вам нужно ввести номер последнего месяца. и если первый месяц, значит 12.

Примечание Я хочу использовать то же самое для timepicker, но я предполагаю, что я мог бы сделать сам по себе, если я понимаю, вопрос с календарем

+0

чем проблема и вопрос? – charlietfl

+1

Это не вопрос jQuery IMHO. Вам просто нужно выбрать значения из своего db, выполнить итерацию и создать массив с датами и временем и создать датупиксера и отключиться: из этого массива. Вопрос в том, какую систему вы используете? PHP, C# ??? Как вы получаете свою страницу в браузере? Вы можете использовать AJAX или загрузить эти значения на сервере при подготовке HTML-кода для клиента. Слишком меньше информации. –

+0

@TomFreudenberg, пожалуйста, перечитайте вопрос – Lynob

ответ

1

я предполагаю, что ваш дб содержание:

ddate: varchar() 

Значения хранятся в таблицы testdates (в виде строк):

2015-10-29 
2015-10-15 
2015-10-10 

бор кар еще как плюс создать строку для построения массива для Js

try{ 
    $stmt = $db->query("SELECT ddate FROM testdates"); 
    $db_ddates = $stmt->fetchAll(\PDO::FETCH_ASSOC); 

    $js_ddates = ""; 
    foreach ($db_ddates as $row => $record) { 
    $js_ddates .= '"' . $record['ddate'] . '",'; 
    } 

} 
catch(\PDOException $e) { 
    echo $e->getMessage(); 
} 

Теперь используйте, что внутри здания части сценария

// take dates as array of strings from db 
var ddates_str_arr = [ <?php echo $js_ddates; ?> ]; 
// build dates array for picker 
var disdates = []; 
for (var i = 0; i < ddates_str_arr.length; i++) { 
    disdates.push(new Date(ddates_str_arr[i])); 
} 
// just use it in picker 
var $input = $('.datepicker').pickadate({ 
    formatSubmit: 'yyyy/mm/dd', 
    min: true, 
    container: '#container', 
    // editable: true, 
    closeOnSelect: true, 
    closeOnClear: false, 
    disable: disdates 
}); 

ВНИМАНИЕ: Я не проверял, но просто пишу те линии от ума. Там могут быть некоторые типичные ошибки, но они должны работать в целом.


UPDATE:

Не уверен сборщика, но дать это тоже попробовать вместо вышеприведенного сценария части

// just use it in picker 
var $input = $('.datepicker').pickadate({ 
    formatSubmit: 'yyyy/mm/dd', 
    min: true, 
    container: '#container', 
    // editable: true, 
    closeOnSelect: true, 
    closeOnClear: false, 
    disable: [ <?php echo $js_ddates; ?> ] 
}); 
+0

первый скрипт работал, а не обновление, спасибо большое, я дам вам щедрость, как только смогу, так что рассказываю, что я должен ждать 2 часа – Lynob

+0

Приятно понять, что это работает хотя бы для вас! –

+0

если бы вы могли ответить на этот вопрос, я был бы благодарен http://stackoverflow.com/questions/33983950/disable-time-picker-from-mysql – Lynob

Смежные вопросы