如何在javascript代码中插入php代码

时间:2018-12-14 10:00:51

标签: php jquery

我需要将story的内容存储在mysql表中。

此内容以后通常会使用php加载到另一页上。

piano.php是第三个单独的文件,我不希望它在当前页面上,而仅在目标页面上。

因此,我尝试在story内容中插入php代码,但该代码会自动注释(请参阅控制台);

该怎么做?

$('button').on('click', function() {
  var a = "<div class='part partpiano'><?php include('piano.php');?></div>";
  $(a).insertBefore($('.title'));
  console.log($('.story').html());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='story'>
  <div class='title'>lorem</div>
</div><br>
<button>CLICK</button>

2 个答案:

答案 0 :(得分:1)

避免将PHP与JavaScript混合使用是更好的做法。 PHP是一种服务器端语言,因此,其执行方式与浏览器不同。它可以工作,但通常会导致意外的行为,并且在大多数情况下,将各个部分分开更干净。

您可以使用隐藏的输入或具有data- *属性的DOM元素来实现PHP和JS之间的数据传递,例如

<div id="php-data" data-id="<?php echo $foo; ?>"></div>

然后在您的jQuery

let id = $('#php-data').attr('data-id');

但是,特别是对于您的问题(包括在内)。 很多更好的方法是使用隐藏类简单地在加载时包括文件:

css:

.hidden {
    display: none
}

html / php:

<div class="title">
    <div class="part partpiano hidden">
        <?php include_once 'piano.php'; ?>
    </div>
</div>

然后在您的JS中:

$('button').click(function()
{
    $('.part').removeClass('hidden')
})

答案 1 :(得分:0)

您不能像尝试的那样将PHP包含在页面中。 PHP在服务器上执行,结果返回到浏览器,因此,如果使用Javascript添加PHP,则不会执行/解析,而是将其作为文本添加(您的浏览器无法执行PHP)。

您可以做的是将容器元素添加到页面中,然后再加载内容,就像这样...

$('button').on('click', function() {
  var a = "<div class='part partpiano'>Loading...</div>";
  $(a).insertBefore($('.title'));
  $(a).load("piano.php");
});