Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态获取一些数据并将其插入div(与wordpress相关)_Php_Javascript_Ajax_Wordpress - Fatal编程技术网

Php 动态获取一些数据并将其插入div(与wordpress相关)

Php 动态获取一些数据并将其插入div(与wordpress相关),php,javascript,ajax,wordpress,Php,Javascript,Ajax,Wordpress,我在开发wordpress主题时遇到了一个挑战,但我认为我想要的只是一个通用的php/JS解决方案,而不是wordpress特有的 因此,我有下面的代码,其中包含我上传的一系列图像的缩略图和描述。我想做的是,当用户单击链接时,与该图像相关联的描述和标题将显示在页面其他位置的div中 我的问题是,到目前为止,我能想到的唯一方法是在我的php foreach语句中设置一个javascript变量,但问题是每次都会覆盖变量值(因为我无法更改变量名),因此在结束之前,我没有为每个图像设置不同的JS变量,

我在开发wordpress主题时遇到了一个挑战,但我认为我想要的只是一个通用的php/JS解决方案,而不是wordpress特有的

因此,我有下面的代码,其中包含我上传的一系列图像的缩略图和描述。我想做的是,当用户单击链接时,与该图像相关联的描述和标题将显示在页面其他位置的div中

我的问题是,到目前为止,我能想到的唯一方法是在我的php foreach语句中设置一个javascript变量,但问题是每次都会覆盖变量值(因为我无法更改变量名),因此在结束之前,我没有为每个图像设置不同的JS变量,我只是有一个数组中最后一个图像的细节

我知道AJAX可能是一种前进的方式,但我对此一无所知。如果有人能帮我指出正确的方向,我会非常感激

谢谢

<?php 
        $gallery_images = get_custom_field('galleryImages:to_array');
        foreach ($gallery_images as $galleryID) {
            $description = $attachment->post_content;                               //get image description
            $caption = $attachment->post_excerpt;                                   //get image caption
            ?>
                <a href="[JS/AJAX to load this items description and caption into target div]">link</a>
            <?php
        }


?>

<div id="targetDiv"></div>

我个人认为你的做法是错误的。使用AJAX与WordPress站点进行交互对于显示图像的一些外围信息的简单功能来说似乎有些过分了

我要做的是让WordPress在页面最初下载时吐出图像和标题信息,但隐藏标题信息,然后在需要时使用客户端JavaScript显示/隐藏它

<?php

    $button_html = "";
    $caption_html = "";

    $gallery_images = get_custom_field('galleryImages:to_array');

    $gallery_images_count = 0;

    foreach ($gallery_images as $galleryID) {

        $description = $attachment->post_content; //get image description
        $caption = $attachment->post_excerpt; //get image caption

        $button_html .= '<div id="caption-button-' . $gallery_images_count . '" class="show-caption-button">Show Caption</div>';

        $caption_html .= '<div id="caption-' . $gallery_images_count . '" style="display:none;">' . $caption . '</div>';

        $gallery_images_count++;

    }

    echo '<div id="buttonDiv">' . $button_html . '</div>';
    echo '<div id="targetDiv">' . $caption_html . '</div>';

?>
如果不自己设置WordPress,很难进行测试,但本质上我们所做的是在PHP中向字符串变量添加带有编号id的标题div,因为我们正在循环浏览图像。然后,在循环结束时,我们将其回传到页面


在JavaScript/jQuery中,我们获取标题按钮的对应id,并使用它在页面中进一步向下切换相关标题。

有趣。唯一悬而未决的问题是,我所有的标题都有相同的目标div,因此不能包含在我的foreach中…感谢更新,它对我不起作用-你有没有未关闭的感谢-似乎仍然是一个问题。当我试图呈现页面时,我得到了以下错误:解析错误:语法错误,第70行的/path/to/page.php中意外的T_INC是:“gallery_images_count++”@Kev好的,您必须在这里使用一些php常识。。。我们试图增加的变量中有一个输入错误(前面没有美元符号)。我现在已经改了。对不起,我应该更仔细一点。在$button\u html变量中调用$gallery\u image\u count时,还缺少一个“s”。谢谢你的帮助,我想这已经足够让我的工作顺利了:)
$('.show-caption-button').click(function(){

    var caption_id = $(this).prop('id').substring(15);

    $('#caption-'+caption_id).eq(0).toggle();

});