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;