Home › Forums › General Issues › Select (value) conditional statement in repeater
I can’t for the life of me get this to work. Please help if you can.
I have a repeater, which has a select (otaname). I want to show an image based on the set value of the select field for each row of the repeater. The image just isn’t working – it defaults to the ‘else’ because it won’t recognise one being selected.
<?php if ( have_rows( 'ota_links' ) ): ?>
<ul class="menu horizontal" id="otas-menu">
<?php
while ( have_rows( 'ota_links' ) ) : the_row();
$otaname = get_sub_field( 'otaname' );
$otalinkurl = get_sub_field( 'ota_link_url' ); ?>
<li><a href="<?php echo $otalinkurl ?>" target="_blank"><span data-tooltip aria-haspopup="true" class="has-tip" title="<?php echo esc_attr( $ota['value'] ); ?>">
<?php if ( $ota == 'expedia' ) { ?><img
src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_expedia.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } elseif ( $ota == 'hotels' ) { ?><img
src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_hotelcom.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } elseif ( $ota == 'agoda' ) { ?><img
src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_agoda.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } elseif ( $ota == 'wotif' ){ ?><img
src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_wotif.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } elseif ( $ota == 'airbnb' ) { ?><img
src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_airbnb.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } else { ?><img src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/ota_tripadvisor.png" height="45" width="45" alt="<?php echo esc_attr( $ota['label'] ); ?>"/>
<?php } ; ?></span></a> </li>
</ul>
<?php endif; ?>
Looks like you’re declaring and assigning a value to $otaname on row 5 in your snippet. But then you never actually use that variable?
Also. You use the variable $ota in your series of if-statements. The way your code is written, you’re assuming that it has a string value. But on each of the conditional statement blocks, you also output $ota[‘label’], assuming $ota is an array.
My best guess is that you’ve mixed up $ota and $otaname in your code.
The topic ‘Select (value) conditional statement in repeater’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.