it-swarm.com.de

Erstellen Sie eine Popup-Box mit benutzerdefiniertem Feldinhalt in der Schleife

Ich habe es zuerst mit ThickBox versucht, dann mit einem Code, der auf einer anderen Website funktioniert hat ... Totaler Fehler.

Das Ziel: Ich habe einen benutzerdefinierten Beitragstyp (Produkt) mit einer Menge benutzerdefinierter Felder. Ich habe auch eine Seite mit der Aufschrift "Alle benutzerdefinierten Felder anzeigen und für jedes benutzerdefinierte Felder X, Y und Z anzeigen". So weit, ist es gut.

Wenn ich versuche, ein Popup oder ein ausblendbares Element für eines der Felder (sample_script) einzufügen, wird es wacklig.

Egal was ich versuche, was auch immer funktioniert, es wird NUR der sample_script -Wert vom ersten Element auf der Seite/innerhalb der Schleife angezeigt. Wenn Sie also auf einen Link klicken, der ein Popup/verstecktes Akkordeon auslösen soll, das den Inhalt von sample_script anzeigt, erhalten Sie NUR den Wert von sample_script für den ersten, nicht für jeden anderen benutzerdefinierten Beitrag, den Sie betrachten.

Was ich gerade habe: Dies ist der aktuelle Code, mit dem ich arbeite und der versucht, animatedcollapse.js zu verwenden:

    <?php query_posts( array(
'post_type' =>'product',
'orderby' => 'title',
  'order' => 'ASC',
 'showposts' => 9999999,
'tax_query' => array(
    array(
        'taxonomy'  => 'Group',
        'field'     => 'slug',
        'terms'     => array( 'books','video' ),
        'operator'  => 'NOT IN',
    ),
)
    ) ); ?>
        <?php while ( have_posts() ) : the_post(); ?>
        <div style="width:100%; display:block; text-align:center">
          <?php if( get_post_meta($post->ID, 'highspeed_daytime_mp3_code', true) ) { ?>
          <div class="project-floater">
            <center>
              <?php the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' ); ?>
              <a href="<?php the_permalink() ?>" rel="bookmark"><img class="thumb" src="<?php echo get_post_meta( get_the_ID(), 'product_cover', true ); ?>" alt="<?php the_title(); ?>" width="142" /></a><br />
              <a href="javascript:animatedcollapse.show('script-sample')">What's On the Recording?</a>
              <div id="script-sample" style="display:none; float:none">
                <div style="width:70px; padding-left:10px; float:right"><a href="javascript:animatedcollapse.hide('script-sample')"><img src="<?php bloginfo('template_directory'); ?>/images/btn_close_button.png" alt="Close"></a></div>
                <?php echo get_post_meta($post->ID, 'sample_script', true); ?></div>
              <div align="center"><a href="http://www.ewebcart.com/cgi-bin/cart.pl?merchant=2465&add=01&item_id=<?php echo get_post_meta( get_the_ID(), 'highspeed_daytime_mp3_code', true ); ?>" target="_self"><img src="images/homebuyplatinum.gif" alt="<?php the_title(); ?>" width="75" height="30" border="0"></a></div>
              </a>
            </center>
          </div>
        </div>
        <?php } else { ?>
        <?php } ?>
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>

Ist jemand super schlau und aufgeregt, einem Dummy zu helfen? Ich ertrinke hier! Ich muss nur das Beispielskript für jedes Element verbergen, bis der Benutzer darauf klickt. Dann wird es entweder erweitert oder eingeblendet (es ist mir egal, welches, ich muss nur das Zeug anzeigen).

1
user3164127

Das Problem ist, dass Sie nicht jedem Popup-Element eine eindeutige ID zuweisen. HTML-Element-IDs sollten eindeutig sein. Bei jedem Aufruf von animatedcollapse.show( 'script-sample' ) wird das erste Element mit der ID "script-sample" als Ziel angegeben. Sie können jedem Popup-Element eine eindeutige ID zuweisen, indem Sie die Beitrags-IDs verwenden:

<div id="script-sample-<?php the_ID(); ?>" [..]

Sie könnten dieses bestimmte Element mit anvisieren

animatedcollapse.show( 'script-sample-<?php the_ID(); ?>' )

Übrigens sollten Sie query_posts wahrscheinlich nicht verwenden, es ist ziemlich schrecklich und es gibt bessere Alternativen .

1
engelen