我在joomla 2.5模板文件中设置了这个PHP变量
$datestart = date('Y-m-d g:i', strtotime("+1 week"));
$dateend = date('Y-m-d g:i', strtotime("+30 days"));
当我回应这个
<?php echo json_encode($datestart); ?>
在php页面中它可以工作。我试图将此变量包含在RS Form组件的jQuery函数中
$formLayout .= "\n".'<script type="text/javascript" src="'.JURI::root(true).'/components/com_rsform/assets/calbs.js"></script>'."\n";
在.js文件中我有
jQuery(function() {
jQuery("#datetimepicker").datetimepicker({
format: "dd MM yyyy - HH:ii P",
showMeridian: true,
autoclose: true,
startDate: <?php echo json_encode($datestart); ?>,
endDate: <?php echo json_encode($dateend); ?>,
minuteStep: 15,
pickerPosition: "bottom-left"
});
});
但它不起作用并显示php回显线的语法错误。我该如何解决这个问题?
答案 0 :(得分:6)
您必须首先将php值分配给.php文件中的js变量
<script>
START_Date='<?php echo json_encode($datestart); ?>';
END_Date='<?php echo json_encode($dateend); ?>';
</script>
现在在你的js文件中
jQuery(function() {
jQuery("#datetimepicker").datetimepicker({
format: "dd MM yyyy - HH:ii P",
showMeridian: true,
autoclose: true,
startDate: START_Date,
endDate: END_Date,
minuteStep: 15,
pickerPosition: "bottom-left"
});
});
或者在你的php文件中包含你的js代码然后你可以在你的js中直接使用php变量:
jQuery(function() {
jQuery("#datetimepicker").datetimepicker({
format: "dd MM yyyy - HH:ii P",
showMeridian: true,
autoclose: true,
startDate: '<?php echo json_encode($datestart); ?>',
endDate: '<?php echo json_encode($dateend); ?>',
minuteStep: 15,
pickerPosition: "bottom-left"
});
});
答案 1 :(得分:1)
嗨你不能在js文件中使用php代码。 将值存储在javascript变量中,然后在jquery函数中使用此变量。
答案 2 :(得分:1)
您只需将此值存储到隐藏字段中,然后通过其id值将其输入.js文件。
答案 3 :(得分:0)
试试这段代码
<input type="hidden" id="startdate" value="<?php echo json_encode($datestart); ?>"/>
<input type="hidden" id="enddate" value="<?php echo json_encode($dateend); ?>"/>
jQuery(function() {
var start = jQuery("#startdate").val();
var end= jQuery("#enddate").val();
jQuery("#datetimepicker").datetimepicker({
format: "dd MM yyyy - HH:ii P",
showMeridian: true,
autoclose: true,
startDate: start,
endDate: end,
minuteStep: 15,
pickerPosition: "bottom-left"
});
});
答案 4 :(得分:0)
you should do it this way:
<?php
$datestart = date('Y-m-d g:i', strtotime("+1 week"));
$dateend = date('Y-m-d g:i', strtotime("+30 days"));
?>
<input id="datestart" type="hidden" name="datestart" value="<?php echo $datestart; ?>">
<input id="dateend" type="hidden" name="dateend" value="<?php echo $dateend; ?>">
<script>
var datestart = document.getElementById('datestart').value;
var dateend = document.getElementById('dateend').value;
jQuery(function() {
jQuery("#datetimepicker").datetimepicker({
format: "dd MM yyyy - HH:ii P",
showMeridian: true,
autoclose: true,
startDate: datestart,
endDate: dateend,
minuteStep: 15,
pickerPosition: "bottom-left"
});
});
</script>