Thread View: pl.comp.lang.javascript
5 messages
5 total messages
Started by jivanmuktaWYTNIJTO
Wed, 18 Aug 2010 15:42
problem z popupowym kalendarzykiem
Author: jivanmuktaWYTNIJTO
Date: Wed, 18 Aug 2010 15:42
Date: Wed, 18 Aug 2010 15:42
182 lines
8468 bytes
8468 bytes
Dzień dobry,
Mam na stronie .php dwa pola na przedział dat. Przy każdym polu jest przycisk
popupowego kalendarzyka. Przy wybraniu daty z kalendarzyka tekst daty powinien
skopiować się do pola. Problem w tym, że o ile w drugim polu ('do kiedy') tak
się dzieje, to w pierwszym polu ('od kiedy') niestety nie. Nie wiem dlaczego.
Patrzę na kod i nie widzę. Firebug mi nic nie pokazuje.
Oto definicja pól:
od <input type="text" id="date_submitted_from" name="date_submitted_from" <?php
echo errorClass('date_submitted_from'); ?> maxlength="10" style="width: 10ex"
value="<?php echo valueFromRequest('date_submitted_from'); ?>"
onblur="validateDate(this, 'date_submitted_from_error');">
<a href="javascript:show_calendar('document.params.date_submitted_from',
document.params.date_submitted_from.value, '../images');"><img
src="../images/cal.gif" width="16" height="16" style="border: 0"
alt="Kalendarz"></a>
- do <input type="text" id="date_submitted_to" name="date_submitted_to" <?php
echo errorClass('date_submitted_to'); ?> maxlength="10" style="width: 10ex"
value="<?php echo valueFromRequest('date_submitted_to'); ?>"
onblur="validateDate(this, 'date_submitted_to_error');">
<a href="javascript:show_calendar('document.params.date_submitted_to',
document.params.date_submitted_to.value, '../images');"><img
src="../images/cal.gif" width="16" height="16" style="border: 0"
alt="Kalendarz"></a>
Kalendarzyk jest includowany tak:
<script type="text/javascript" src="../include/ts_picker.js">
Dzień w tabelce kalendarzyka jest linkiem:
javascript:window.opener.document.params.date_submitted_from.value='2010.08.31';
window.close();
javascript:window.opener.document.params.date_submitted_to.value='2010.08.31';
window.close();
A oto kod kalendarzyka:
// Title: Timestamp picker
// Description: See the demo at url
// URL: http://us.geocities.com/tspicker/
// Script featured on: http://javascriptkit.com/script/script2/timestamp.shtml
// Version: 1.0
// Date: 12-05-2001 (mm-dd-yyyy)
// Author: Denis Gritcyuk <denis@softcomplex.com>; <tspicker@yahoo.com>
// Notes: Permission given to use this script in any kind of applications if
// header lines are left unchanged. Feel free to contact the author
// for feature requests and/or donations
// Translated to Polish by Robert Magdziarz
function show_calendar(str_target, str_datetime, str_images) {
var arr_months = ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec",
"Lipiec", "Sierpień", "Wrzesień", "PaĽdziernik", "Listopad", "Grudzień"];
var week_days = ["Nd", "Po", "Wt", "¦r", "Cz", "Pt", "So"];
var n_weekstart = 1; // day week starts from (normally 0 or 1)
var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() :
str2dt(str_datetime));
var dt_prev_month = new Date(dt_datetime);
dt_prev_month.setMonth(dt_datetime.getMonth()-1);
var dt_next_month = new Date(dt_datetime);
dt_next_month.setMonth(dt_datetime.getMonth()+1);
var dt_firstday = new Date(dt_datetime);
dt_firstday.setDate(1);
dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
var dt_lastday = new Date(dt_next_month);
dt_lastday.setDate(0);
// html generation (feel free to tune it for your particular application)
// print calendar header
var str_buffer = new String (
"<html>\n"+
"<head>\n"+
" <title>Kalendarz</title>\n"+
"</head>\n"+
"<body bgcolor=\"White\">\n"+
"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
"<tr><td bgcolor=\"#4682B4\">\n"+
"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
"<tr>\n <td bgcolor=\"#4682B4\"><a
href=\"javascript:window.opener.show_calendar('"+
str_target+"', '"+ dt2dtstr(dt_prev_month)+"','"+str_images+"');\">"+
"<img src=\""+str_images+"/prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
" alt=\"previous month\"></a></td>\n"+
" <td bgcolor=\"#4682B4\" colspan=\"5\">"+
"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
+arr_months[dt_datetime.getMonth()]+"
"+dt_datetime.getFullYear()+"</font></td>\n"+
" <td bgcolor=\"#4682B4\" align=\"right\"><a
href=\"javascript:window.opener.show_calendar('"
+str_target+"', '"+dt2dtstr(dt_next_month)+"','"+str_images+"');\">"+
"<img src=\""+str_images+"/next.gif\" width=\"16\" height=\"16\" border=\"0\""+
" alt=\"next month\"></a></td>\n</tr>\n"
);
var dt_current_day = new Date(dt_firstday);
// print weekdays titles
str_buffer += "<tr>\n";
for (var n=0; n<7; n++)
str_buffer += " <td bgcolor=\"#87CEFA\">"+
"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
week_days[(n_weekstart+n)%7]+"</font></td>\n";
// print calendar table
str_buffer += "</tr>\n";
while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
dt_current_day.getMonth() == dt_firstday.getMonth()) {
// print row heder
str_buffer += "<tr>\n";
for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
if (dt_current_day.getDate() == dt_datetime.getDate() &&
dt_current_day.getMonth() == dt_datetime.getMonth())
// print current date
str_buffer += " <td bgcolor=\"#FFB6C1\" align=\"right\">";
else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
// weekend days
str_buffer += " <td bgcolor=\"#DBEAF5\" align=\"right\">";
else
// print working days of current month
str_buffer += " <td bgcolor=\"white\" align=\"right\">";
if (dt_current_day.getMonth() == dt_datetime.getMonth())
// print days of current month
str_buffer += "<a href=\"javascript:window.opener."+str_target+
".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
else
// print days of other months
str_buffer += "<a href=\"javascript:window.opener."+str_target+
".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+
"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
dt_current_day.setDate(dt_current_day.getDate()+1);
}
// print row footer
str_buffer += "</tr>\n";
}
// print calendar footer
str_buffer +=
"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
"<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+
"</font></td></tr>\n</form>\n" +
"</table>\n" +
"</tr>\n</td>\n</table>\n" +
"</body>\n" +
"</html>\n";
var vWinCal = window.open("", "Kalendarz",
"width=200,height=250,status=no,resizable=yes,top=200,left=200");
vWinCal.opener = self;
var calc_doc = vWinCal.document;
calc_doc.write (str_buffer);
calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other
datetime format
function str2dt (str_datetime) {
var re_date = /^(\d+)\.(\d+)\.(\d+)$/;
if (!re_date.exec(str_datetime))
return alert("Błędny format daty: "+ str_datetime);
return new Date(RegExp.$1, RegExp.$2-1, RegExp.$3);
}
function dt2dtstr (dt_datetime) {
var month = dt_datetime.getMonth()+1;
if (month < 10) {
month = "0" + month.toString();
} else {
month = month.toString();
}
var day = dt_datetime.getDate();
if (day < 10) {
day = "0" + day.toString();
} else {
day = day.toString();
}
return (new String (
dt_datetime.getFullYear()+"."+month+"."+day));
}
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: problem z popupowym kalendarzykiem
Author: Peter May
Date: Wed, 18 Aug 2010 19:33
Date: Wed, 18 Aug 2010 19:33
10 lines
1189 bytes
1189 bytes
W dniu 2010-08-18 17:42, jivanmuktaWYTNIJTO@poczta.onet.pl pisze: > Dzień dobry, > Mam na stronie .php dwa pola na przedział dat. Przy każdym polu jest przycisk [...] Zrezygnuj ze swojego rozwiązania i przyjrzyj się temu: http://piskorz.info/narzedzia/date-picker/ -- Peter
Re: problem z popupowym kalendarzykiem
Author: zpk
Date: Fri, 20 Aug 2010 09:01
Date: Fri, 20 Aug 2010 09:01
16 lines
1704 bytes
1704 bytes
On 18 Sie, 21:33, Peter May <peter....@onet.pl> wrote: > W dniu 2010-08-18 17:42, jivanmuktaWYTNI...@poczta.onet.pl pisze:> Dzień dobry, > > Mam na stronie .php dwa pola na przedział dat. Przy każdym polu jest przycisk > > [...] > > Zrezygnuj ze swojego rozwiązania i przyjrzyj się temu:http://piskorz.info/narzedzia/date-picker/ > > -- > Peter I co z tego będzie miał? "IE obsysa, ponieważ ..." Paweł
Re: problem z popupowym kalendarzykiem
Author: zpk
Date: Fri, 20 Aug 2010 09:05
Date: Fri, 20 Aug 2010 09:05
24 lines
2017 bytes
2017 bytes
On 20 Sie, 11:01, zpk <zpks...@op.pl> wrote: > On 18 Sie, 21:33, Peter May <peter....@onet.pl> wrote: > > > W dniu 2010-08-18 17:42, jivanmuktaWYTNI...@poczta.onet.pl pisze:> Dzień dobry, > > > Mam na stronie .php dwa pola na przedział dat. Przy każdym polu jest przycisk > > > [...] > > > Zrezygnuj ze swojego rozwiązania i przyjrzyj się temu:http://piskorz.info/narzedzia/date-picker/ > > > -- > > Peter > > I co z tego będzie miał? > > "IE obsysa, ponieważ ..." > > Paweł Za szybko napisałem. U mnie na IE8 działa. Zresztą, co do IE8 to dodam, że szybkością i jakością renderowanej grafiki to FF obsysa i to wyraźnie, niestety. Paweł
Re: problem z popupowym kalendarzykiem
Author: Peter May
Date: Fri, 20 Aug 2010 11:09
Date: Fri, 20 Aug 2010 11:09
30 lines
2000 bytes
2000 bytes
W dniu 2010-08-20 11:05, zpk pisze: > On 20 Sie, 11:01, zpk<zpks...@op.pl> wrote: >> On 18 Sie, 21:33, Peter May<peter....@onet.pl> wrote: >> >>> W dniu 2010-08-18 17:42, jivanmuktaWYTNI...@poczta.onet.pl pisze:> Dzień dobry, >>>> Mam na stronie .php dwa pola na przedział dat. Przy każdym polu jest przycisk >> >>> [...] >> >>> Zrezygnuj ze swojego rozwiązania i przyjrzyj się temu:http://piskorz.info/narzedzia/date-picker/ >> >>> -- >>> Peter >> >> I co z tego będzie miał? >> >> "IE obsysa, ponieważ ..." >> >> Paweł > > Za szybko napisałem. U mnie na IE8 działa. > Zresztą, co do IE8 to dodam, że szybkością i jakością renderowanej > grafiki to FF obsysa i to wyraźnie, niestety. Obecnie część przeglądarek akceptuje już input type="date" i nie będzie potrzebny datepicker :P No chyba, że jako alternatywa w przypadku braku obsługi input type="date". -- Peter
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads