Reputation: 35
i have this PHP variable set in joomla 2.5 template file
$datestart = date('Y-m-d g:i', strtotime("+1 week"));
$dateend = date('Y-m-d g:i', strtotime("+30 days"));
and when i echo this
<?php echo json_encode($datestart); ?>
inside a php page it works. I'm trying to include this variable inside a jQuery function of the RS Form component
$formLayout .= "\n".'<script type="text/javascript" src="'.JURI::root(true).'/components/com_rsform/assets/calbs.js"></script>'."\n";
in the .js file i have
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"
});
});
But it's not working and shows syntax error for the php echo line. How can i solve this ?
Upvotes: 2
Views: 15611
Reputation: 64476
You have to assign the php values first to js variables in .php file
<script>
START_Date='<?php echo json_encode($datestart); ?>';
END_Date='<?php echo json_encode($dateend); ?>';
</script>
Now in your js file
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"
});
});
OR include your js code in your php file then you can directly use php variables inside your js like this:
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"
});
});
Upvotes: 7
Reputation: 684
You can simply store this value into the hidden field and then get it by its id value in to the .js file.
Upvotes: 1
Reputation: 212
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>
Upvotes: 0
Reputation: 1667
try this code
<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"
});
});
Upvotes: 0
Reputation: 463
Hi You can not use php code in js file. store value in javascript variable and then use this variable in you jquery function.
Upvotes: 1