Reputation: 3267
This is my php code:
<?php
$typeid = 65;
$subledgerid = 'subledger'.$typeid;
$loadledger = 'loadledgers';
?>
<script type="text/javascript">view_subledger('<?php echo $subledgerid;?>',<?php echo $typeid;?>,'<?php echo $loadledger;?>');</script>
This is not calling the view_subledger()
.
But when i call something like this it will work fine:
<script type="text/javascript">view_subledger('subledger65',65,'loadledgers');</script>
How can i call this?
Upvotes: 1
Views: 104
Reputation: 16951
Here is the safest way to do this:
<?php
$typeid = 65;
$subledgerid = 'subledger'.$typeid;
$loadledger = 'loadledgers';
?>
<script type="text/javascript">
view_subledger.apply(window, <?php print json_encode(array(
$typeid,
$subledgerid,
$loadledger
)); ?>);
</script>
Which generates following code:
<script type="text/javascript">
view_subledger.apply(window, [65,"subledger65","loadledgers"]);
</script>
json_encode() will ensure that variables are escaped properly and with .apply() method you can pass parameter array to JS function.
Another suggested version:
<?php
$typeid = 65;
$subledgerid = 'subledger'.$typeid;
$loadledger = 'loadledgers';
$param_str = implode(', ', array_map('json_encode', array(
$typeid,
$subledgerid,
$loadledger
)));
?>
<script type="text/javascript">
view_subledger(<?php print $param_str; ?>);
</script>
Generates following:
<script type="text/javascript">
view_subledger(65, "subledger65", "loadledgers");
</script>
Upvotes: 2
Reputation: 474
This is all the code you have in the file? All this looks OK and must work as far as $subledgerid, $typeid,$loadledger are correct. But what about this line?
<?php } ?>
It must crash the script
Upvotes: 0
Reputation: 1264
Why is <?php } ?>
after the script? Should be like:
<?php
$typeid = 65;
$subledgerid = 'subledger'.$typeid;
$loadledger = 'loadledgers';
?>
<script type="text/javascript">view_subledger('<?php echo $subledgerid;?>',<?php echo $typeid;?>,'<?php echo $loadledger;?>');</script>
Upvotes: 0