2010-10-25 5 views
3

J'ai une liste de dates stockées dans une table MYSQL, l'idée est que si le champ suivant est évalué 'terminé', la date de la ligne n'est pas sélectionnable dans le programme jQueryUI. Les dates sont stockées dans le format AAAA-MM-JJ .. comment est-ce que je ferais pour charger ces dates «terminées» dans un tableau PHP dans un format pour le datpicker pour les comprendre et les désactiver? JSON serait la réponse évidente, j'ai passé les deux dernières semaines à s'y attaquer. Tout exemple de code du code jquery/php serait grandement apprécié.jQuery datepicker, dates de désactivation de MYSQL

Merci beaucoup à l'avance.

[J'ai fait des recherches sur le sujet mais ce n'est pas particulièrement bien documenté. J'ai déjà le datepicker montrant des jours valides dans une semaine. Le jperyUI datepicker semble pouvoir tout faire sauf me faire une tasse de thé. ]

EDIT: J'ai réussi à alimenter le tableau des dates avec le statut « final » jusqu'au bout JSON, je pensais que je serais fournir le code si elle aide à tout le monde:

<?php 

    //connect to local db 
    include('functions.php'); 
    connectLocal($localcon); 

    //locate rows with status set to final 
    $result = mysql_query("SELECT sendDate FROM my_table WHERE status='final'"); 

    // return corresponding dates as json array 
    $i=0; 
    while($row = mysql_fetch_array($result)) 
    { 
     $confirmedSends[$i] = array ("sendDate" => $row['sendDate']); 
     $i++; 
    } 
    header('Content-type: application/json'); 
    $jsonConfirmedSends = json_encode($confirmedSends); 
    echo $jsonConfirmedSends; 
?> 

Cela peut récupérer avec json sous la forme d'une liste de dates. La boîte d'alerte apparaît une fois pour chaque date. Sur le point de se mettre au travail pour les présenter à mon tableau datepicker.

$.getJSON("get-disabled-dates.php", 
function(data){ 
    $.each(data, function(index, completed) { 
     alert(completed.sendDate); 
    }); 
}); 

Répondre

2

Essayez le code correspondant à votre situation qui désactive l'ensemble de dates. Vous pouvez obtenir les dates en utilisant JSON à partir de votre table MySQL avec .getJSON $ de jquery

$(function() { 
      $("#pickdate").datepicker({ 
       dateFormat: 'dd MM yy', 
       beforeShowDay: checkAvailability 
       }); 

    }) 


    var $myBadDates = new Array("10 October 2010","21 October 2010","12 November 2010"); 

    function checkAvailability(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]; 
    } 

source: http://codingforums.com/showthread.php?t=206879