我想我很接近,但此刻我陷入困境。这是一个小背景。
我正在使用Wordpress,我有一个插件库。每个图库都有一个ID,我试图在用户点击图库链接时完成,图库将更改为相应的图库。画廊的展示如下:
<?php echo do_shortcode('[slideshow gallery_id="1"]'); ?>
或
<?php if (function_exists('slideshow')) { slideshow(true, "1", false, array()); } ?>
都做同样的事情 -
其中gallery_id
指定正确的图库。我正在使用AJAX运行一些代码,以便在用户点击链接时获取正确的图库ID。
jQuery('.gallery-btn').click(function() {
var galleryId = jQuery(this).data('gallery');
jQuery.ajax({
url: "/wp-content/themes/thetheme/gallery.php",
data: {action: galleryId},
type: 'post',
success: function(output) {
console.log(output);
}
})
})
gallery.php中的PHP代码:
<?php
if(isset($_POST['action']) && !empty($_POST['action'])) {
$galleryId = $_POST['action'];
passId($galleryId);
}
function passId($id) {
echo $id;
}
?>
output
返回我需要传递给PHP代码[slideshow gallery_id="$theID"]
的ID。
如何在PHP代码中使用成功函数中的output
?
答案 0 :(得分:0)
简短的回答是,你不能。至少不是以你提议的方式。生成图库的PHP代码在最初加载页面之前执行。在页面加载后,你不能让jQuery调用脚本并将其传递给已经执行的PHP函数。
话虽如此,您可能还有一些其他选项可在页面加载后更新图库。不熟悉你正在使用的画廊,我不能给出具体的建议。但是,我可以谈谈一般方法。
您可以使用javascript / jQuery更改图库的原始HTML输出(即<img>
标记,src
链接等)。在这种情况下,您可以使用AJAX根据需要下拉图库元数据以进行这些更改。
我更简单的方法可能是简单地输出一个全新的图库HTML块(可能使用初始函数),并将其替换为DOM中的当前HTML。在这种情况下,您可以让AJAX调用一个服务器端脚本,重新运行库函数并返回HTML内容以便通过javascript插入到DOM中。