插入到JS脚本中的PHP变量

PHP variable inserted into JS script

提问人:user3287680 提问时间:11/8/2023 更新时间:11/10/2023 访问量:102

问:

我有一个从帖子中获得的 php 变量:

<?php
$pdf_name = $_POST['pdf_name']; 
echo $pdf_name;
?>

当我将其插入翻书脚本时,出现错误:

<script type="text/javascript">

      $(document).ready(function () {
          $("#read").flipBook({
            //Layout Setting
            pdfUrl:'uploads/pdf-gallery/<?php  $pdf_name ?>',
            lightBox:true,
            ...............
            ...............
            ............... etc.
        });
      })
  </script>

这是错误:


pdfUrl:'uploads/pdf-gallery/<br />
<b>Warning</b>:  Undefined variable $pdf_name in <b>C:\xampp\htdocs\mysite\pdf-gallery.php</b> on line <b>81</b><br />
<br />

而如果我插入这个变量,它工作得很好,我得到:

<?php 
$pdf_name = 'tex-willer.pdf';
echo $pdf_name;
?>


<script type="text/javascript">

      $(document).ready(function () {
          $("#read").flipBook({
            //Layout Setting
            pdfUrl:'uploads/pdf-gallery/tex-willer.pdf',
            lightBox:true,
            ........... etc
 </script>  

如何消除第一种情况的错误???

JavaScript PHP 数组

评论

2赞 brombeer 11/8/2023
<?php $pdf_name ?>什么都不做,你需要输出/回显它
1赞 ADyson 11/8/2023
并确保 $pdf_name 存在,并且在您尝试使用它时在范围内
0赞 ADyson 11/8/2023
演示:3v4l.org/qMVuH
2赞 Markus Zeller 11/8/2023
您还应该url_encode它。<?php echo urlencode($pdf_name); ?>
0赞 ADyson 11/8/2023
演示包括 Markus 的明智建议:3v4l.org/D9uSR

答:

-2赞 user3287680 11/9/2023 #1

我插入了一个警报,它在第一种情况下也有效

<script type="text/javascript">
alert('<?=$pdf_name; ?>');
</script>

评论

1赞 ADyson 11/9/2023
不确定这如何帮助您解决原始问题?
0赞 Mat 11/9/2023
这向我表明,较短的可以解决范围问题。你为什么不用你的原始 JavaScript 代码来尝试呢?<?= ... ?>
0赞 ADyson 11/9/2023
@Mat打开和关闭 PHP 块的方式对范围没有影响
0赞 Mat 11/9/2023
你是对的,在这两种情况下都在范围内。$pdf_name
0赞 user3287680 11/10/2023
我需要从POST生成$pdf_name,如第一个示例所示,而不是从文本生成。 $pdf名称 = $_POST['pdf_name'];echo $pdf_name;codecode
-1赞 user3287680 11/10/2023 #2

我用SESSION解决了它:

<?php
if(isset($_POST['pdf_name'])) {
$pdf_name = $_POST['pdf_name'];
$_SESSION['pdf_name'] = $pdf_name;

echo $_SESSION['pdf_name'] ;
}
?>

评论

0赞 ADyson 11/10/2023
除非在不同的文件中,否则这无济于事。如果您仍在使用同一脚本,则不需要会话。你最初的目标是将其输出到 SQL 脚本中,而不仅仅是随机回显它。要么你没有解释清楚,要么你的问题不是问题中描述的问题。echo $_SESSION['pdf_name'] ;