1

这是我的 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>

我怎么称呼这个?

4

3 回答 3

2

这是最安全的方法:

<?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>
于 2012-11-28T08:09:40.247 回答
0

为什么是<?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>
于 2012-11-28T08:08:05.830 回答
0

这是您在文件中的所有代码吗?所有这一切看起来都不错,并且必须在 $subledgerid、$typeid、$loadledger 正确的情况下工作。但是这条线呢?

  <?php } ?>

它必须使脚本崩溃

于 2012-11-28T08:08:58.450 回答