이 소스안에 여분필드(cf_1) 값을 불러오고 싶습니다. 채택완료
안녕하세요.
아래가 제가 사용하는 소스중 일부입니다.
$('#sdate').datetimepicker({
allowTimes:at,
timepicker:false,
format: 'Y-m-d',
onClose:function(ct,$i){
if($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},onShow:function( ct ){
this.setOptions({
minDate:"<?php echo date('Y-m-d', strtotime('+ 5 day')); ?>",
maxDate:jQuery('#edate').val()?jQuery('#edate').val():false
})
}
});
이 소스중
minDate:"<?php echo date('Y-m-d', strtotime('+ 5 day')); ?>",
에서 숫자 5가 써져 있는 부분에 직접 입력이 아닌,
여분필드(cf_1)의 값으로 불러오고 싶습니다.
일반적이라면 <?php echo $config['cf_1'] ?>로 불러오면 될듯한데,
저부분에서는 어떤식으로 불러와야 할지 모르겠습니다.
$config['cf_1']
$config[cf_1]
$(config['cf_1'])
$('config['cf_1']')
로는 안되네요.
혹시 아시는 분 답변 주시면 정말 감사하겠습니다.
답변 5개
이렇게 수정을 해보시겠어요~
<script>
$(document).ready(function() {
var cf1Value = <?php echo $config['cf_1']; ?>;
$('#sdate').datetimepicker({
allowTimes: at,
timepicker: false,
format: 'Y-m-d',
onClose: function(ct, $i) {
if ($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},
onShow: function(ct) {
var minDate = new Date();
minDate.setDate(minDate.getDate() + parseInt(cf1Value));
this.setOptions({
minDate: minDate.toISOString().split('T')[0],
maxDate: jQuery('#edate').val() ? jQuery('#edate').val() : false
});
}
});
});
</script>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
이걸 참고해보시는건 어떨까요?
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<link rel="stylesheet" href="path/to/datetimepicker.css">
<script src="path/to/jquery.min.js"></script>
<script src="path/to/datetimepicker.js"></script>
</head>
<body>
<input type="text" id="sdate">
<script>
$(document).ready(function() {
var cf1Value = "<?php echo $config['cf_1']; ?>";
$('#sdate').datetimepicker({
allowTimes: at,
timepicker: false,
format: 'Y-m-d',
onClose: function(ct, $i) {
if ($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},
onShow: function(ct) {
var minDate = new Date();
minDate.setDate(minDate.getDate() + parseInt(cf1Value));
this.setOptions({
minDate: minDate.toISOString().split('T')[0],
maxDate: jQuery('#edate').val() ? jQuery('#edate').val() : false
});
}
});
});
</script>
</body>
</html>
답변에 대한 댓글 1개
기존의 스크립트는 <script src="">로 그대로 불러오고,
아래 부분만 별도로 페이지내에 <input type="text" id="sdate"> 다음에 넣어봤는데,
정상작동하지 않습니다.
<script>
$(document).ready(function() {
var cf1Value = "<?php echo $config['cf_1']; ?>";
$('#sdate').datetimepicker({
allowTimes: at,
timepicker: false,
format: 'Y-m-d',
onClose: function(ct, $i) {
if ($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},
onShow: function(ct) {
var minDate = new Date();
minDate.setDate(minDate.getDate() + parseInt(cf1Value));
this.setOptions({
minDate: minDate.toISOString().split('T')[0],
maxDate: jQuery('#edate').val() ? jQuery('#edate').val() : false
});
}
});
});
</script>
기존 스크립트에서
$('#sdate').datetimepicker({
allowTimes:at,
timepicker:false,
format: 'Y-m-d',
onClose:function(ct,$i){
if($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},onShow:function( ct ){
this.setOptions({
minDate:"<?php echo date('Y-m-d', strtotime('+ 5 day')); ?>",
maxDate:jQuery('#edate').val()?jQuery('#edate').val():false
})
}
});
이 부분은 그대로 두어보기도 하고, 삭제해 보기도 했습니다.
혹시나 기존 스크립트 부분을 위 내용으로 변경도 해보았지만 역시 정상작동하지는 않네요.
제가 기본 지식이 없는 상태에서 짜집기를 하다보니 알려주신 내용을 정확히 파악했는지도 잘 모르겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
minDate:"<?php echo date('Y-m-d', strtotime('+ '.$config['cf_1'].' day')); ?>",
minDate:"<?php echo date('Y-m-d', strtotime("+ {$config['cf_1']} day")); ?>",
둘다 가능합니다.
답변에 대한 댓글 5개
친절하신 답변 감사합니다.
페이지내에 저 소스를
<script>
.....
</script>
이렇게 넣었을때는 알려주신 방법으로 여분필드(cf_1) 값을 불러오는게 됩니다.
그런데, 저 소스를 여러곳에서 불러오는지라
별도의 스크립트 파일을 만들어서 <script src="">로 불러오고 있는데,
이렇게하면 정상적으로 작동을 안하네요.
혹시 이때는 방법이 없을까요?
아... 제가 원하는대로는 사용할 수 없는건가보네요.
실은 제가 <script src="">로 파일을 불러올때,
.js 파일이 아닌
.php 파일로 불러오고 있습니다.
동일한 소스지만 소스 불펌을 위해서
파일 맨 위에 <?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>를 넣어서요.
지금보니
minDate:"<?php echo date('Y-m-d', strtotime('+ 5 day')); ?>",
이 부분도 기존에 .php로 불러올때는 정상적으로 작동했는데,
이번에 이리저리 테스트해보면서 .js로 불러오니 정상적으로 작동을 안하네요.
php 변수를 javascript변수로 값을 넣어주고 그 값을 스크립트 파일 안에서 사용해야 한다고 하셨는데,
이건 간단한 작업이 아니겠지요?
Mimetype만 지정해 주면 됩니다.
https://stackoverflow.com/questions/41016476/specify-mime-type-of-php-file-as-application-javascript
ajax로 cf_1 값을 불러 올 수도 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
이걸 한번 참고해 보세요~
<?php
$config_cf_1 = $config['cf_1'];
?>
<script>
//JSON으로 인코딩하여 JavaScript 변수 config_cf_1에 할당하는 과정
var config_cf_1 = <?php echo json_encode($config_cf_1); ?>;
</script>
$('#sdate').datetimepicker({
allowTimes: at,
timepicker: false,
format: 'Y-m-d',
onClose: function (ct, $i) {
if ($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},
onShow: function (ct) {
this.setOptions({
minDate: config_cf_1, // config_cf_1 변수 사용
maxDate: jQuery('#edate').val() ? jQuery('#edate').val() : false
})
}
});
답변에 대한 댓글 1개
친절하신 답변 감사합니다.
다른 두분 답변에 댓글을 달았듯이,
다른 두분께서 알려주신 방법으로
페이지내에 저 소스를
<script>
.....
</script>
이렇게 넣으면 여분필드(cf_1) 값을 불러오지만
제가 <script src="">로 불러오고 있는데, 이때는 정상적으로 작동을 안합니다.
그래서 제이앤님께서 알려주신 방법으로 테스트 해보려고 하는데,
<?php
$config_cf_1 = $config['cf_1'];
?>
<script>
//JSON으로 인코딩하여 JavaScript 변수 config_cf_1에 할당하는 과정
var config_cf_1 = <?php echo json_encode($config_cf_1); ?>;
</script>
를 어느 부분에 어떤식으로 넣어야 할지 모르겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
minDate:"<?php echo date('Y-m-d', strtotime('+ '.$config['cf_1'].' day')); ?>",
답변에 대한 댓글 1개
친절하신 답변 감사합니다.
페이지내에 저 소스를
<script>
.....
</script>
이렇게 넣었을때는 알려주신 방법으로 여분필드(cf_1) 값을 불러오는게 됩니다.
그런데, 저 소스를 여러곳에서 불러오는지라
별도의 스크립트 파일을 만들어서 <script src="">로 불러오고 있는데,
이렇게하면 정상적으로 작동을 안하네요.
혹시 이때는 방법이 없을까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
제가 제대로 이해를 못한건지, 아니면 기존 소스자체가 문제인지 모르겠지만
바로 전 방법으로 이리저리 테스트를 해봤는데, 여전히 정상 작동하지 않습니다.
참고로 제
index.php와 게시판 write.skin.php에 아래 처럼 되어 있고,
.
.
.
<script src="<?php echo G5_THEME_JS_URL ?>/소스.php"></script>
<link rel="stylesheet" type="text/css" href="<?php echo G5_THEME_CSS_URL;?>/jquery.datetimepicker.css">
<script src="<?php echo G5_THEME_JS_URL;?>/jquery.datetimepicker.js"></script>
.
.
.
<input id="sdate" name="sdate" class="datetimepicker" type="text" readonly placeholder="날짜 선택">
소스.php는
<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
function setSelectBox(year1,mon1,day1,hour1,minute1,year2,mon2,day2,hour2,minute2)
{
$('#year1').val(year1);
$('#mon1').val(mon1);
$('#day1').val(day1);
$('#hour1').val(hour1);
$('#minute1').val(minute1);
$('#year2').val(year2);
$('#mon2').val(mon2);
$('#day2').val(day2);
$('#hour2').val(hour2);
$('#minute2').val(minute2);
}
.
.
.
$('#sdate').datetimepicker({
allowTimes:at,
timepicker:false,
format: 'Y-m-d',
onClose:function(ct,$i){
if($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},onShow:function( ct ){
this.setOptions({
minDate:"<?php echo date('Y-m-d', strtotime('+ 5 day')); ?>",
maxDate:jQuery('#edate').val()?jQuery('#edate').val():false
})
}
});
$('#edate').datetimepicker({
allowTimes:at,
timepicker:false,
format: 'Y-m-d',
onClose:function(ct,$i){
if($("#sdate").val() != "" && $("#edate").val() != "") {
GoPayCheck();
}
},onShow:function( ct ){
var startDate = jQuery('#sdate').val();
if (startDate !== "") {
var maxDate = new Date(startDate);
maxDate.setDate(maxDate.getDate() + 15); // 시작일로부터 7일 이후
maxDate = maxDate.toISOString().split('T')[0]; // ISO 형식의 날짜 문자열로 변환
this.setOptions({
minDate: startDate,
maxDate: maxDate
});
} else {
this.setOptions({
minDate: "<?php echo 'G5_TIME_YMD';?>"
});
}
},
});
.
.
.
이런식으로 되어 있는 상태입니다.