Home › Forums › Bug Reports › Cloned fields inherit/save data to and from sibling cloned fields (with prefix)
There’s currently a bug with 2 cloned fields on the same page with “Prefix Field Names” selected and configured correctly (i.e. unique).
The bug means that once one cloned field has been filled in, the second cloned field inherits that value. Meaning it’s impossible to have 2 cloned fields with unique IDs set via “Prefix Field Names”.
I feel the reason for this is that although a datastore gets created with the prefixed field name correctly, the data collection on the front end has issues due to duplicate DOM input IDs on the form. Because of duplicate IDs I imagine this is causing issues when POST occurs on the Update button being clicked. (For more info see end of video)
I have created a video showing this from start to finish which can be viewed here: https://drive.google.com/file/d/0B1K2tcYO_XFjYWNpZWMtWk5qV1k/view?usp=sharing (Download the video to stop Google Drive downscaling)
I have also included my ACF JSON export: https://drive.google.com/file/d/0B1K2tcYO_XFjSHN6OFlJVGd0T1k/view?usp=sharing
To repeat manually:
– Create a field group named text fields
– Add a number text fields in all with unique IDs
– Save
– Create a field group with the Flexible Content field type
– Add a clone field type, select the field created in step 1, ensure field has a unique label, select “Prefixed Field Names”
– Add another clone field type, select the field created in step 1, ensure the field has a unique label, select “Prefixed Field Names”
– Show the field group on Page
– Go to the page, populate one clone field’s contents but not the other
– Click update
– Both cloned field values will share that of the first cloned field
If you view the fields in inspector you will see that both fields share the same DOM input ID.
This bug is present on ACF 5.4.4
Thanks James,
I reported this through a support ticket also and Elliot replied and updated the clone field documentation to reflect this behaviour / support
For anyone wondering about this it’s not currently something which can be implemented due to the way key names are setup. It’s my understanding that if the change was to be made to support this it would be a “breaking” change in ACF for users who currently have cloned fields on their setups
Cheers
I know this is marked as solved, but there is a way to get this to work (tested on ACF Pro 5.4.1).
Follow the same steps as outlined by fatsoma in “To repeat manually:” only change the Display from Seamless to Group within each clone field.
This allows each duplication of the same clone content to be saved into the posts meta. This “feature” may be (probably is) a bug as from here you can’t access the data using the normal have_rows() and get_sub_field() method, but instead need to build your own.
I’m using something like:
// get the flexible content
$flexible_content = get_field('flexible_content_name');
foreach( $flexible_content as $flexible_row ) {
// find out which layout is being used
$acf_fc_layout = $flexible_row['acf_fc_layout'];
echo '<h1>'. $acf_fc_layout .'</h1>';
// knock the first index off to get at the goodies
array_splice($flexible_row, 0, 1);
// get content data
foreach($flexible_row as $key=>$val) {
echo '<h1>'.$key.'</h1>';
?><pre><?php
print_r($val);
?></pre><?php
echo $val['field_name'];
}
}
to get at the fields which is pretty janky, but works.
The topic ‘Cloned fields inherit/save data to and from sibling cloned fields (with prefix)’ 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 Privacy Policy. If you continue to use this site, you consent to our use of cookies.