Home › Forums › Front-end Issues › Files (repeater) in dropdown
Hi,
I’ve only just started developing with ACF, and I can see why it’s such popular plugin! I’ve had a look through the forum for a solution for my problem, but can’t seem to find the answer, all though I think there is probably an easy solution for it.
I got a repeater field called “file” that has a sub field (type file) called “files”. I’d like all the individual files to be gathered in a dropdown with a button called “Download”. When I did the following I ended up with two “Download”-buttons instead of one. How do I gather the files in the same div?
This is what I want it to look like in the end: https://ibb.co/kUiTFv
while ( have_rows('file') ) : the_row();
// display a sub field value
$files = get_sub_field('files');
if ($files): ?>
<button onclick="download()" type="button">Download</button>
<div id="download">
<a href="<?php echo $files['url']; ?>"><?php echo $files['filename']; ?></a>
</div>
<?php endif;
endwhile;
Hi @amandahstd
Thanks for reaching out to us.
Unfortunately, that is quite tricky as it is not possible to link to several links using a single anchor.
You will need some custom solution or maybe using Jquery to trigger download for all the files on click.
Hope this helps.
Hi there,
Just to clarify, I don’t need all the files to download on the click, I just want them to show in the same dropdown. I want there to be 1 dropdown for all the files in the repeater.
I would be very grateful for any code suggestions to make this happen!
I got this sorted via email support, thank you very much. This is what the result looks like:
<?php
// if 'file' repeater has rows
if( have_rows('file') ): ?>
<!-- files select button -->
<button onclick="download()" type="button">Download</button>
<div id="download">
<!-- files select list -->
<?php
// loop through the 'file' rows of data
while ( have_rows('file') ) : the_row();
$files = get_sub_field('files');
$file_name = get_sub_field('file_name'); ?>
<!-- display file name with URL in download list -->
<a href="<?php echo $files['url']; ?>" target="_blank"><?php echo $file_name; ?></a>
<?php
// endwhile loop for 'file' repeater
endwhile; ?>
</div>
<?php
// else if 'file' repeater has no rows
else :
// no rows found
endif;
You must be logged in to reply to this topic.
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!
🤔 Curious about the ACF user experience? So are we! Help guide the evolution of ACF by taking part in our first ever Annual Survey and guarantee you’re represented in the results. https://t.co/0cgr9ZFOJ5
— Advanced Custom Fields (@wp_acf) May 8, 2023
© 2023 Advanced Custom Fields.
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.