所以现在我现在这是一个愚蠢的问题但现在有人在没有ajax请求的情况下解决它的最佳方法,因为我觉得为一行代码创建一个新文件是愚蠢的
我正在制作一个画廊,我想要两种类型的视图:网格视图和幻灯片视图。我的幻灯片和我的网格视图都可以工作但它们位于不同的文件中。所以我写了一个简单的jquery函数来将一些PHP代码加载到html代码中。因此,当我单击一个按钮时,html代码消失,并且有PHP代码。 jquery功能可以工作,但问题是当代码被更改时,它不会将其识别为PHP代码,而只是作为字符串。
这就是我所看到的,你可以看到文本,但它需要执行该代码: 这是jquery函数:
$(document).ready(function(){
$("img.grid_icon").click(function() {
$(".werkvenster").html("<?php include_once('resources/UberGallery.php'); $gallery = UberGallery::init()->createGallery('img/gallerij/'); ?>");
})
});
我使用&amp; lt和&amp; gt,否则浏览器将其视为必须执行的PHP代码而不是将其视为字符串。
以下是它必须包含的html代码:
<body>
<section class="werkvenster">
<img src="img/website/icon_grid.png" height="30px" class="grid_icon">
<div class="galerij" id="galerij">
</div>
<button class="omlaag" id="galerij_knop">Terug</button>
<button class="omhoog" id="galerij_knop">Verder</button>
</section>
</body>
所有节之间的所有内容都与类&#34; werkvenster&#34;
需要改变 <?php include_once('resources/UberGallery.php'); $gallery = UberGallery::init()->createGallery('img/gallerij/'); ?
&GT;
当有人点击网格图标时。
非常感谢,请不要将此标记为副本,因为我一直在寻找一个多小时来找到这个问题的答案。
答案 0 :(得分:8)
似乎你需要澄清PHP和JS如何工作。
a)PHP代码在服务器端执行。所有的。没有别的
b)完全没有PHP的输出被发送到浏览器
c)JS代码在客户端执行。所有的。没有别的
如果您使用JS编写PHP代码,它只会在浏览器内部发生,而浏览器不知道如何处理它。并且在每一次PHP执行之后很久。 你不要用这个写回任何东西。
您可以做的是对返回所需输出的特定PHP文件执行AJAX请求。但你不能只是混合使用JS和PHP。它只是不起作用。
编辑:回复您关于如何在不使用AJAX的情况下解决问题的编辑
简单地说: 根本不是 。你必须从服务器获取数据,最好的方法是使用AJAX(它是为此制作而不是其他),在服务器上你必须以某种方式生成数据。最干净的方法是新文件。
答案 1 :(得分:3)
它不会将其识别为PHP代码,而只是将其识别为字符串
那是因为 是一个字符串:
"<?php include_once('resources/UberGallery.php'); $gallery = UberGallery::init()->createGallery('img/gallerij/'); ?>"
PHP无法在浏览器中运行,它在服务器上运行 。当页面传送到浏览器时,PHP代码已执行并完成并生成其输出。在此之后,PHP不再参与。
如果你想执行客户端代码,那就是JavaScript的用途。如果您需要代码来执行服务器端,则浏览器必须向服务器发出请求以实现此目的。页面加载,表单发布,AJAX等。它们都采用HTTP请求的形式(可能有一些数据发送到服务器),它调用PHP脚本并接收该脚本的输出作为响应。 / p>
答案 2 :(得分:0)
如果没有ajax,你可以做你想做的事。您只需创建一个包含php代码的隐藏<section>
(在将其发送到浏览器之前,您必须在服务器端执行此操作)。然后在浏览器中,使用jquery从隐藏的<section>
中获取内容(或者只是交换部分)
以下是一个例子:
服务器端PHP:
<body>
<section class="werkvenster">
<img src="img/website/icon_grid.png" height="30px" class="grid_icon">
<div class="galerij" id="galerij">
</div>
<button class="omlaag" id="galerij_knop">Terug</button>
<button class="omhoog" id="galerij_knop">Verder</button>
</section>
<section id="hiddenStuff" style="display:none">
<?php include_once('resources/UberGallery.php'); $gallery = UberGallery::init()->createGallery('img/gallerij/'); ?>
</section>
</body>
<强> jQuery的:强>
$(document).ready(function(){
$("img.grid_icon").click(function() {
$(".werkvenster").html($("#hiddenStuff").html());
})
});