Multiselect Checxbox values to Tags
This topic contains 6 replies, has 3 voices, and was last updated by Neil Hall 7 years, 10 months ago.
We have moved to a support ticketing system and our forums are now closed.
Open Support TicketTagged: jquery, multiselect, Tab Keyword
-
AuthorPosts
-
February 7, 2017 at 8:35 pm #356529
I have set up a Multiselect Checkbox in an Add listing form with about 20 options. What I am trying to do is for the options that the user selects by ticking, to automatically add the values to the Tag Keywords field (post_tags), when the ‘Please accept our terms and conditions’ checkbox (geodir_accept_term_condition) is ticked.
I have managed to do a similar thing with other fields using jQuery in the following way, but these fields are text, which makes it easier. For example:-
<script type="text/javascript"> jQuery(document).ready(function() { if (jQuery('#post_city').length > 0 ) { jQuery(document).on('change', 'input[name=geodir_accept_term_condition]', function() { if (this.checked) { jQuery('#post_tags').val(jQuery('#post_city').val() + ',' + jQuery('#post_country').val() + ',' + jQuery('#post_title').val() ); } }); } else { jQuery(document).on('change', 'input[name=geodir_accept_term_condition]', function() { if (this.checked) { jQuery('#post_tags').val(jQuery('#post_title').val() ); } }); } }); </script>
When I set up the GeoDirectory Multi Select Field in the CPT settings the code generated is as follows. So what I am trying to do is for example if the user ticks the 1st and 2nd options the values “Action” and “ Animation” are then input in to the “post_title”
HTML REMOVED FROM HERE AND PASTED IN REPLY BELOW
I did find a jQuery code solution that may possibly work, but this relies on the “checkbox” being checked so the items can be filtered. Unfortunately when using the GeoDirectory code which is generated above when the box is ticked in the front end this does not change the status of the code to ‘checked’.
So, What do I need to do is find a way of showing the individual checkbox’s as ‘checked’ Can someone suggest a way of doing this?
Or alternatively is there another way of getting the selected values in the Tag Keyword box?
February 7, 2017 at 9:08 pm #356556Hi,
I’ve flagged this for the developers. They’ll let you know asap.
Please next time you paste code in the forum, make sure to wrap it in code tags (2nd button from the right.)
The html was breaking the forum layout for this page so i had to copy it and paste it here:
<div id="geodir_add_genre_row" class=" geodir_form_row clearfix gd-fieldset-details"><label>Additional genre</label> <input name="gd_field_geodir_add_genre" type="hidden" value="1" /> <ul class="gd_multi_choice"> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Action" /> Action</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Animation" /> Animation</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Comedy" /> Comedy</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Documentary" /> Documentary</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Family" /> Family</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Film-Noir" /> Film-Noir</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Horror" /> Horror</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Musical" /> Musical</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Romance" /> Romance</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Sport" /> Sport</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="War" /> War</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Adventure" /> Adventure</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Biography" /> Biography</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Crime" /> Crime</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Drama" /> Drama</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Fantasy" /> Fantasy</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="History" /> History</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Music" /> Music</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Mystery" /> Mystery</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Sci-Fi" /> Sci-Fi</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Thriller" /> Thriller</li> <li><input class="gd-checkbox" name="geodir_add_genre[]" type="checkbox" value="Western" /> Western</li> </ul> <span class="geodir_message_note">Select the additional genre</span> </div>
Thanks
February 7, 2017 at 9:51 pm #356591Hi Paolo
Sorry for the problem with the code, I did not realize.
February 8, 2017 at 11:36 am #356913February 9, 2017 at 10:46 am #357825Hi Stiofan
I have tried to use the jQuery example that you gave, but I can’t get it to work. I set up the
<span id='output'>none</span>
which display in the frontend as ‘none’.
I am using the html that is automatically generated by Geodirectory for the multiselect checkbow which is listed above.
I’ve used the JQuery in the example and tried different Id to #gd_field_geodir_add_genre, #geodir_add_genre_row, #geodir_add_genre and even #geodir_add_genre[] (which jQuery really does not like). I even tried using different classes, but the ‘option’ output does not change.With my limited knowledge it seems that within the code generated by Geodirectory there does not seem to be a name or Id I can tie into. And also when a checkbox is ticked it does not change the status in the same way the example you gave does.
Are my assumptions correct?
Best Regards
NeilFebruary 10, 2017 at 11:19 am #359373Hi Neil,
here is an updated one that uses a text input like post tags, hopefully you can get it from here:
https://jsfiddle.net/r12htn7c/1/
(it works for me)
Stiofan
February 14, 2017 at 8:58 am #361360Hi Stiofan
The jQuery example that you gave did not seem to work. I think the problem lies in the code that is automatically output when a Multiselect checkbox is generated in the Add Listing page. There does not seem to be anything that triggers the change. However, after a lot of playing about I came up with the following that worked for me
<script type="text/javascript"> jQuery(document).ready(function() { jQuery('.gd_multi_choice').on('change', function() { var selecttag = []; jQuery("input[name='geodir_add_genre[]']:checked").each( function (){ selecttag.push(jQuery(this).val()); }); jQuery('#post_tags').val(selecttag); }); }); </script>
If you have multiple CPT’s and therefore multiple ‘Add Listing’ pages then this will work on all of them as long as the ‘HTML variable name’ is the same.
-
AuthorPosts
We have moved to a support ticketing system and our forums are now closed.
Open Support Ticket