调用PHP函数两次,只工作一次

调用PHP函数两次,只工作一次,php,foreach,associative-array,Php,Foreach,Associative Array,我正在尝试使用PHP关联数组将文本和图像的不同值回显到HTML中,用于同一页面上jQuery幻灯片的不同实例。以下是HTML: <div class='slide'> <div class='mosaic-block fade'> <div class='mosaic-overlay'> <div class='text'><p>This is the text!</p></di

我正在尝试使用PHP关联数组将文本和图像的不同值回显到HTML中,用于同一页面上jQuery幻灯片的不同实例。以下是HTML:

<div class='slide'>
    <div class='mosaic-block fade'>
        <div class='mosaic-overlay'>
        <div class='text'><p>This is the text!</p></div>
            </div>
        <div class='mosaic-image'><img src='imgs/the-img.png'/></div>
    </div> <!-- mosaic-block fade -->
</div> <!-- .slide --> ` 
然后我编写了一个函数,其中包含幻灯片类别和内容的参数:

function gallery_content($content) {
    foreach ( $content as $img => $txt ) {
    echo "<div class='slide'>
        <div class='mosaic-block fade'>
        <div class='mosaic-overlay'>
            <div class='text'><p>".$txt."</p></div></div>
            <div class='mosaic-image'><img src='imgs/other/".$img."'/></div>
        </div> <!-- mosaic-block fade -->
        </div> <!-- .slide --> ";
}
功能库内容($content){
foreach($img=>$txt形式的内容){
回声“
“$txt。”

"; }
我这样称呼它:
gallery\u content($my\u content)
而且它工作得非常好。但是当我尝试再次调用它以获取另一组值时,似乎只有第一个实例起作用。我尝试直接使用数组而不是变量作为参数,并为每个幻灯片制作单独的函数,但始终得到相同的结果


为什么不能多次调用该函数?请提前感谢。

查看在最终页面(HTML)上生成的源代码,以判断PHP是否起作用。我认为这就是结果“galaries”(DIV)可能与jQuery激活的ID或其他属性相同,因此只有一个正确运行(第一个),第二个未运行


希望这能有所帮助。

查看最终页面(HTML)上生成的源代码,判断PHP是否起作用。我认为这就是生成的“galaries”(DIV)可能与jQuery激活它们的ID或其他属性相同,因此只有一个运行正常(第一个),而第二个未运行


希望这能有所帮助。

我的猜测是PHP正在发挥作用。检查输出文档的源代码,您应该会看到正确数量的库)。我怀疑类
库的CSS规则(例如绝对定位的规则)只会导致一个库可见。如果您同意使用内联CSS(这通常是不可接受的),您可以让PHP根据库号添加自定义位置值(如top):

function gallery_content($content) {
    $num = 0;
    foreach ( $content as $img => $txt ) {
    echo "<div class='slide' style='top: ".(100 + 50*$num)."px'>
        <div class='mosaic-block fade'>
        <div class='mosaic-overlay'>
            <div class='text'><p>".$txt."</p></div></div>
            <div class='mosaic-image'><img src='imgs/other/".$img."'/></div>
        </div> <!-- mosaic-block fade -->
        </div> <!-- .slide --> ";
}
功能库内容($content){
$num=0;
foreach($img=>$txt形式的内容){
回声“
“$txt。”

"; }

上面的示例给出了第一个gallery元素的顶部为100px(100+50*0),第二个元素的顶部为150px,tird 200px,依此类推。您还可以使用一些CSS3和新的
calc()
功能取代了此功能,但CSS3选择器是实验性的,在一些旧浏览器中不受支持。使用PHP和内联样式将是最安全的选择。

我猜PHP正在发挥作用。检查输出文档的源代码,您应该会看到适当数量的库)。我怀疑类
的CSS规则(例如绝对定位的CSS规则)只会导致一个库可见。如果您同意使用内联CSS(这通常是不可接受的),您可以让PHP根据库号添加自定义位置值(如top):

function gallery_content($content) {
    $num = 0;
    foreach ( $content as $img => $txt ) {
    echo "<div class='slide' style='top: ".(100 + 50*$num)."px'>
        <div class='mosaic-block fade'>
        <div class='mosaic-overlay'>
            <div class='text'><p>".$txt."</p></div></div>
            <div class='mosaic-image'><img src='imgs/other/".$img."'/></div>
        </div> <!-- mosaic-block fade -->
        </div> <!-- .slide --> ";
}
功能库内容($content){
$num=0;
foreach($img=>$txt形式的内容){
回声“
“$txt。”

"; }

上面的示例给出了第一个gallery元素的顶部为100px(100+50*0),第二个元素的顶部为150px,tird 200px,依此类推。您还可以使用一些CSS3和新的
calc()
功能取代了此功能,但CSS3选择器是实验性的,在一些旧浏览器中不受支持。使用PHP和内联样式将是最安全的选择。

第二次调用时的行为是什么?似乎有效:您确定这是PHP问题而不是jQuery问题吗?尝试创建一个普通html文件并手动输入t将一些图像的数据放入jQuery幻灯片的两个实例中-是否有效?您可能在这里编写的函数中错过了最后一个右大括号,但我想这不是问题的原因。它是否仅在调用
库内容(数组(“1.png”=>“One”,…)时处理第一个元素
?第二次调用时的行为是什么?似乎有效:您确定这是一个PHP问题而不是jQuery问题吗?尝试创建一个简单的html文件,并手动将一些图像的数据输入到jQuery幻灯片的两个实例中-有效吗?您可能错过了您在此处编写的函数中的最后一个右大括号,但是我想这不是问题的原因。当你调用
gallery\u content(数组(“1.png”=>“One”,…)时,它是否只处理第一个元素
?我想你是对的-当我将幻灯片类更改为
slide1
slide2
时,幻灯片都显示在正确的位置,但其他jQuery功能(隐藏滚动、导航divs)不要出现。我会做更多的实验并看看。是的,这肯定是个问题。在一个页面上有多个幻灯片比我想象的要复杂得多-看起来这是一个常见的解决方案。谢谢!我想你应该接受其中一个答案,因为你有你的解决方案。:)我认为你是对的-w当我将幻灯片类更改为
slide1
slide2
时,幻灯片都会显示在正确的位置,但其他jQuery功能(隐藏滚动、导航divs)不要出现。我会做更多的实验看看。是的,肯定是问题。在一个页面上有多个幻灯片比我想象的要复杂得多-看起来这是一个常见的解决方案。谢谢!我想你应该接受其中一个回答,因为你有你的解决方案。:)