|
|
|
ผมมีปัญหา ที่อยากรบกวนเพื่อนๆ มากเลย จะเปลี่ยน code ด้านล่างนี้ให้เป็น class เพื่อเรียกใข้งานได้หลายครั้ง จะเขียนอย่างไงเหรอครับ |
|
|
|
|
|
|
|
$(document).ready(function(e) {
var dateBefore=null;
$("#datepicker").datepicker({
showOn: 'button',
buttonImage: '../picture/CalendarIcon.jpg',
buttonImageOnly: true,
dateFormat: 'yy-mm-dd',
dayNamesMin: ['อา', 'จ', 'อ', 'พ', 'พฤ', 'ศ', 'ส'],
monthNamesShort: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
changeMonth: true,
changeYear: true ,
beforeShow:function(){
if($(this).val()!=""){
var arrayDate=$(this).val().split("-");
arrayDate[0]=parseInt(arrayDate[0])-543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onChangeMonthYear: function(){
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onClose:function(){
if($(this).val()!="" && $(this).val()==dateBefore){
var arrayDate=dateBefore.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
},
onSelect: function(dateText, inst){
dateBefore=$(this).val();
var arrayDate=dateText.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
});
$("#datepicker1").datepicker({
showOn: 'button',
buttonImage: '../picture/CalendarIcon.jpg',
buttonImageOnly: true,
dateFormat: 'yy-mm-dd',
dayNamesMin: ['อา', 'จ', 'อ', 'พ', 'พฤ', 'ศ', 'ส'],
monthNamesShort: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
changeMonth: true,
changeYear: true ,
beforeShow:function(){
if($(this).val()!=""){
var arrayDate=$(this).val().split("-");
arrayDate[0]=parseInt(arrayDate[0])-543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onChangeMonthYear: function(){
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onClose:function(){
if($(this).val()!="" && $(this).val()==dateBefore){
var arrayDate=dateBefore.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
},
onSelect: function(dateText, inst){
dateBefore=$(this).val();
var arrayDate=dateText.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
});
});
จาก code ด้านบนน่ะครับ ผมเขียนเป็น .js เพื่อเรียกใช้งานเจ้า datepicker น่ะครับ แต่ปัญหาอยู่ว่า เราสามารถเรียกใช้งานได้เพียงครั้งเดียว ถ้าในหนึ่งหน้าเวปเพจ นั้นมีให้กรอกเก็บกับวันที่ หากผมต้องการใช้งาน ในการกรอกวันที่ สัก 2-3 ครั้งในหน้าเวปเพจเดียวกัน มีคนแนะนำให้เขียนเป็น class แล้วเรียกใช้งาน แต่ว่า ผมทำไม่ได้ รบกวนเพื่อนช่วยเหลือด้วยครับ รบกวนด้วยครับ
Tag : PHP
|
|
|
|
|
|
Date :
2012-09-14 17:21:20 |
By :
joolawan |
View :
978 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรียกได้หลายครั้งสิผมก็ใช้อยู่เพียงแค่เปลี่ยน #datepicker เอาเช่น
#datepicker1
#datepicker2
#datepicker3
#datepicker.......
|
|
|
|
|
Date :
2012-09-14 17:36:54 |
By :
phpbasic |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมอยากให้ใน code .js นั้น เหลือเพียง algorithm ของ datepicker อย่างเดียว แล้วถ้ามีการเรียกใช้ น่าจะมีการเรียกใช้ผ่าน class รึเปล่า คือ ผมไม่อยากให้ แบบว่า ถ้าจะเรียกใช้ datepicker 3 ครั้ง ผมต้องมา copy สร้าง datepicker เป็น datepicker1,datepicker2 อย่างนี้ ไปเรื่อยๆ นะเหรอ มันไม่ค่อยสะดวก รบกวนเพื่อนๆ อีกครั้งครับ
|
|
|
|
|
Date :
2012-09-15 00:24:59 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//thaidatepicker.js
function thaidatepicker(selector){
$(document).ready(function(e) {
var dateBefore=null;
$(selector).datepicker({
showOn: 'button',
buttonImage: '../picture/CalendarIcon.jpg',
buttonImageOnly: true,
dateFormat: 'yy-mm-dd',
dayNamesMin: ['อา', 'จ', 'อ', 'พ', 'พฤ', 'ศ', 'ส'],
monthNamesShort: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
changeMonth: true,
changeYear: true ,
beforeShow:function(){
if($(this).val()!=""){
var arrayDate=$(this).val().split("-");
arrayDate[0]=parseInt(arrayDate[0])-543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onChangeMonthYear: function(){
setTimeout(function(){
$.each($(".ui-datepicker-year option"),function(j,k){
var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
$(".ui-datepicker-year option").eq(j).text(textYear);
});
},50);
},
onClose:function(){
if($(this).val()!="" && $(this).val()==dateBefore){
var arrayDate=dateBefore.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
},
onSelect: function(dateText, inst){
dateBefore=$(this).val();
var arrayDate=dateText.split("-");
arrayDate[0]=parseInt(arrayDate[0])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
}
});
});
}
เวลาใช้ก็
thaidatepicker('#datepicker');
thaidatepicker('#datepicker1');
thaidatepicker('#datepicker2');
โดยทั่วไป selector จะเป็น '#datepicker,#datepicker1,#datepicker2' ได้ แต่พอมีตัวแปร
var dateBefore=null; บางทีอาจจะแชร์ตัวแปรไม่ได้ เลยคิดว่าต้องแยกเป็น 3 คำสั่งแบบนี้ครับ
|
|
|
|
|
Date :
2012-09-15 06:47:54 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เวลาเรียกใช้งาน ต้อง add code ตามนี้
<script type="text/javascript" src="js/thaidatepicker.js"></script>
</head>
<body>
<!--ใส่ header เพื่อเปลี่ยน logo เพียงครั้งเดียวแล้วสั่งผลไปทุกหน้า-->
<?php include "header.php"; ?>
<?php thaidatepicker('#datepicker'); ?>
ใช่เปล่าครับ แต่ว่า พอเรียกใช้งาน ไม่เห็นเกิดอะไรขึ้นเลยครับ
พอเอาไปใส่ในตาราง
<table width="500" align="center" border="1">
<tr>
<td align="left" width="300">ทำรายงานส่งตู้ ตาม Asset No. ตั้งแต่วันที่:</td>
<td align="left" width="200"><input name="date_received_start" type="text" id="thaidatepicker('#datepicker');"></td>
</tr>
ก็ยังไม่มีอะไรเกิดขึ้น แถมรันไม่ได้ด้วยน่ะครับ
รบกวนเพื่อนๆ แก้ปัญหาให้หน่อยครับ
|
|
|
|
|
Date :
2012-09-15 07:33:53 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
thaidatepicker('#datepicker');
thaidatepicker('#datepicker1');
</script>
thaidatepicker เป็น js function นะครับ
<input name="date_received_start" type="text" id="thaidatepicker('#datepicker');">
เปลี่ยนเป็น
<input name="date_received_start" type="text" id="datepicker">
<input name="date_received_start" type="text" id="datepicker1">
|
ประวัติการแก้ไข 2012-09-15 07:36:55
|
|
|
|
Date :
2012-09-15 07:35:52 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ได้แล้วครับ สุดยอดเลย ขอบคุณเพื่อนๆ มากเลยครับ
|
|
|
|
|
Date :
2012-09-15 11:21:05 |
By :
joolawan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|