php - 我如何使用带有 php 变量传递的 php 代码调用 javascript 函数

标签 php javascript

这是我的 php 代码:

<?php
  $typeid = 65;
  $subledgerid = 'subledger'.$typeid;
  $loadledger = 'loadledgers';
   ?>
   <script type="text/javascript">view_subledger('<?php echo $subledgerid;?>',<?php echo $typeid;?>,'<?php echo $loadledger;?>');</script>

这不是调用 view_subledger()

但是当我这样调用它时它会工作正常:

<script type="text/javascript">view_subledger('subledger65',65,'loadledgers');</script>

我该如何调用它?

最佳答案

这是最安全的方法:

<?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>

生成以下代码:

<script type="text/javascript">
view_subledger.apply(window, [65,"subledger65","loadledgers"]);
</script>

json_encode() 将确保变量被正确转义,并且使用 .apply() 方法您可以将参数数组传递给 JS 函数。

另一个建议的版本:

<?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>

生成以下内容:

<script type="text/javascript">
view_subledger(65, "subledger65", "loadledgers");
</script>

关于php - 我如何使用带有 php 变量传递的 php 代码调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600451/

相关文章:

php - 当用户使用 Laravel 成功登录时,如何更新上次登录列?

php - 获取最后插入的准备好的语句的 ID

javascript - 将语言选择写入 jQuery 文件?

javascript - 模糊事件不起作用时会出现错误

javascript - 仅在 vimeo 视频上隐藏喜欢、观看和分享

php - 如何在 Zend 中使用 cookie?

php - 如何在 Codeigniter 中的 from 语句中嵌套联接

php - 从 simple_xml 数据设置数组

javascript - 这个导出是什么意思呢?这是一个执行两个函数的对象吗?

javascript - 无法读取未定义的属性 "replace"