Jump to content

jQuery "datepicker" na stronie produktu


badyllek1993

Recommended Posts

Witam serdecznie,

 

mam problem z wyświetleniem bloku "datepicker" korzystającego z jQuery.

 

 

 

Tutaj fragment kodu jaki wpisuję w pliku "ProductController.php":

$wynik='<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Restrict date range</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script>
  var jquery = $.noConflict(true); 
</script>

<script>
 jquery(function() {
// Disable a range of dates
var disabledDaysRange = [['.$dwa.'], \'9-17-2013\'];
function disableRangeOfDays(d) {
    for(var i = 0; i < disabledDaysRange.length; i++) {
        if(jquery.isArray(disabledDaysRange[i])) {
            for(var j = 0; j < disabledDaysRange[i].length; j++) {
                var r = disabledDaysRange[i][j].split(" to ");
                r[0] = r[0].split("-");
                r[1] = r[1].split("-");
                if(new Date(r[0][2], (r[0][0]-1), r[0][1]) <= d && d <= new Date(r[1][2], (r[1][0]-1), r[1][1])) {
                    return [false];
                }
            }
        }else{
            if(((d.getMonth()+1) + \'-\' + d.getDate() + \'-\' + d.getFullYear()) == disabledDaysRange[i]) {
                return [false];
            }
        }
    }
    return [true];
}
jquery(\'#od\').datepicker({
        dateFormat: \'dd-mm-yy\',
        minDate: 0,
        beforeShowDay: disableRangeOfDays,
        onClose: function( selectedDate ) {
         jquery( "#do" ).datepicker( "option", "minDate", selectedDate );
}
});
jquery(\'#do\').datepicker({
        dateFormat: \'dd-mm-yy\',
        beforeShowDay: disableRangeOfDays
});
});
</script>

<script type="text/javascript">
    function validation()
    {
        var form =  document.getElementById(\'buy_block\'),
            rules = { // 1
                \'od\' : /^\d{2}\-\d{2}\-\d{4}/,
                \'do\' : /^\d{2}\-\d{2}\-\d{4}/,
            };
 
        for (var elem in rules) // 2
        {
            if (form[elem])
            {
                if (!rules[elem].test(form[elem].value)) // 3
                {
                    alert(\'Podaj prawidłową datę w polu "\' + elem + \'".\');
                    form[elem].style.background = \'red\';
                    return false;
                }
                else
                {
                    form[elem].style.background = \'\';
                }
            }
        }
        
        return true;
    }
</script>

</head>
<body>
Zarezerwuj ten pojazd już teraz:
<p>Od: <input id="od" name="od" type="text" ></p>
<p>Do: <input id="do" name="do" type="text" ></p>

</body>';
		$this->context->smarty->assign(array('moj_wynik_z_php' => $wynik));

A tutaj fragment jaki znajduje się w pliku szablonu "product.tpl":
 

<form id="buy_block" name="info-form" {if $PS_CATALOG_MODE AND !isset($groups) AND $product->quantity > 0}class="hidden"{/if} action="{$link->getPageLink('cart')}" method="post" onsubmit="return validation();">
{$moj_wynik_z_php}

Pojawiają się dwa pola formularza, działa JavaScript sprawdzający, czy pola zostały wypełnione prawidłowo, ale nie działa wysuwanie kalendarza korzystającego z jQuery.

 

Proszę o pomoc.

 

Dodam, że to mi działało, ale zainstalowałem nowy szablon, opublikowałem kilka nowych modułów i teraz nie działa ani na nowym, ani na starym szablonie. Wyłączałem pojedynczo wszystkie aktywne moduły, ale to nic nie daje.

Adres strony:
http://www.algarve-campers.com/pl/algarve-campers/4-peugeot-j5-.html
 

Dziękuję i pozdrawiam,

badyllek1993

Edited by badyllek1993 (see edit history)
Link to comment
Share on other sites

Tak, działa, ponieważ obecny kalendarz nie działa na jQuery, ale na zwykłej JS + HTML, dokładnie rzecz biorąc do modułu rezerwacji nad którym pracowałem użyłem http://www.dhtmlx.com/docs/products/dhtmlxCalendar/

 

Tak naprawdę jakiś błąd powodował szablon, podejrzewam, że któryś z modułów. Wyłączyłem ustawienia szablonu i po przełączeniu na domyślny template kalendarz działał, po przejściu na nowo doinstalowany - nie działał. Nie miałem już czasu szukać błędu, dlatego zmieniłem całkowicie technologię i porzuciłem jQuery.

 

 

Pozdrawiam,

badyllek1993

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...