我需要将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>
答案 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");
});