0

我想我很接近,但我现在被困住了。这里有一点背景。

我正在使用 Wordpress,并且我有一个画廊插件。每个画廊都有一个 ID,当用户点击画廊链接时,我正在尝试完成,画廊将更改为相应的画廊。画廊的显示如下:

<?php echo do_shortcode('[slideshow gallery_id="1"]'); ?>

或者

<?php if (function_exists('slideshow')) { slideshow(true, "1", false, array()); } ?>

两者都做同样的事情-

wheregallery_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 代码的 ID [slideshow gallery_id="$theID"]

如何output在我的 PHP 代码中使用成功函数?

4

1 回答 1

0

简短的回答是你不能。至少不是你提议的方式。生成图库的 PHP 代码在页面初始加载之前执行。您不能让 jQuery 在页面加载后调用脚本并将其传递给已执行的 PHP 函数。

话虽如此,您可能还有其他一些选项可以在页面加载后更新图库。不熟悉您使用的画廊,我无法给出具体建议。但是,我可以谈谈一般方法。

您也许可以使用 javascript/jQuery 更改画廊的原始 HTML 输出(即<img>标签、src链接等)。在这种情况下,您可以根据需要使用 AJAX 来下拉图库元数据以进行这些更改。

我更简单的方法可能是简单地输出一个全新的画廊 HTML 块(可能使用初始函数)并将其替换为 DOM 中的当前 HTML。在这种情况下,您可以让 AJAX 调用服务器端脚本,该脚本重新运行图库函数并返回 HTML 内容以通过 javascript 插入 DOM。

于 2013-07-01T18:26:16.357 回答