Home Forums Front-end Issues Files (repeater) in dropdown


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:

    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>
    <?php endif; 
  • 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:

    // 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 -->
    // 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>
    // endwhile loop for 'file' repeater
    endwhile; ?>
    // else if 'file' repeater has no rows
    else :
    // no rows found
Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.