Compare commits

...

6 Commits

1 changed files with 75 additions and 91 deletions

View File

@ -49,7 +49,6 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
if( isset($_GET[ $fieldname ]) ) { if( isset($_GET[ $fieldname ]) ) {
$filteredvalues['value'] = explode(',', $_GET[ $fieldname ]); $filteredvalues['value'] = explode(',', $_GET[ $fieldname ]);
//$filteredvalues['value'] = ($_GET[ $fieldname ]);
}; };
//end check for values in url //end check for values in url
@ -62,12 +61,7 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<?php foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?> <?php foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?>
<div class="filter" data-filter="<?php echo $fields['name'];?>"> <div class="filter" data-filter="<?php echo $fields['name'];?>">
<input <input class="ofisuport-filter" type="checkbox" name="<?php echo $fields['name'];?>" <?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?> value="<?php echo $choicevalue ?>" />
class="ofisuport-filter"
type="checkbox"
<?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?>
value="<?php echo $choicevalue ?>"
name="<?php echo $fields['name'];?>" />
<label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label> <label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label>
</div> </div>
@ -85,8 +79,8 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<?php }; //end if type checkbox ?> <?php }; //end if type checkbox ?>
<?php }; //end foreach groupkey field ?> <?php }; //end foreach groupkey field ?>
<p><b>Results:</b> <span id="results"></span></p> <?php //echo '<p><span id="filterlink"></span></p>';?>
<button type="submit" class="button-more">enviar</button> <p><a id="submitfilteredlink" name="submit-ajut" class="button button-more" href="">enviar</a> </p>
</form> </form>
<?php //close the form and subit ?> <?php //close the form and subit ?>
@ -96,87 +90,77 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<script type="text/javascript"> <script type="text/javascript">
//https://wordpress.stackexchange.com/questions/383599/form-checkbox-value-going-to-dynamic-url
// sample form on submiit
//
(function($){
$('#form-ajuts').on('submit', function(e) {
// prevent default
e.preventDefault();
// set empty submission object (function($) {
let submission = {}; // change
//$('#archive-filters').on('click', 'button', function(){
$('#archive-filters').on('click', 'input', function(){
// for each of this form submit event target object entries as key/field // vars
for (const [key, field] of Object.entries(e.target)) { var url = '<?php echo home_url('ajuts/'); ?>';
args = {};
var appendtoURL = '';
var eachfiltered = '';
var valueschecked = '';
// if object entry (field) has a name attribute // loop over filters
if (field.name) { $('#archive-filters .filter').each(function(){
// check if is first appearance of each
// if field type is if( eachfiltered != $(this).data('filter') ){
if (field.type === 'checkbox') { // save already calculated field=val01,val02,val03
if( eachfiltered != '' && valueschecked != '' ){
// set field name as array // remove last ','
submission[field.name] = []; valueschecked = valueschecked.slice(0, -1);
// if checkbox is checked appendtoURL += eachfiltered +'=' +valueschecked +'&';
if (field.checked) { };
// start new fieldname filtered
// add name/value to submission object eachfiltered = $(this).data('filter');
submission[field.name].push(field.value); // reset values
valueschecked = '';
} // find checked inputs
$(this).find('input:checked').each(function(){
} else if (field.value) { // if not empty save value and ,
if( $(this).val() != '' ){
// add name/value to submission object valueschecked += $(this).val() + ',';
submission[field.name] = field.value; };
});
} //alert( appendtoURL +":" +eachfiltered +"=" +valuescheked);
}
}
// now let loop through our submission and check for arrays
for (const [name, value] of Object.entries(submission)) {
// if submission value is array
//if (Array.isArray(value)) {
// let convert array to string
//submission[name] = value.join(',');
//}
}
// convert submission object to url safe params string
let submission_url_params = $.param(submission);
// if we have submission params
if(submission_url_params) {
// success actions
// create our submission action url
let submission_url_action = this.action + (submission_url_params ? '?' + submission_url_params : '');
// un-comment this to actually fire the form submission
window.location.href = submission_url_action;
// else no submission params
} else { } else {
// we have previous values checked
// find checked inputs
//if( $(this).val() != '' ){
// if not empty append value and ,
$(this).find('input:checked').each(function(){
valueschecked += $(this).val() + ',';
});
//alert( appendtoURL +":not:" +eachfiltered +"=" +valuescheked);
//};
};
});
// no submission data actions // remove last ','
valueschecked = valueschecked.slice(0, -1);
// save last cycled filtered value already calculated field=val01,val02,val03
appendtoURL += eachfiltered +'=' +valueschecked +'&';
} // remove last &
appendtoURL = appendtoURL.slice(0, -1);
// update url
url += '?' +appendtoURL;
// show or modify the url
//alert( url );
//$('#filterlink').text(url);
// convert a href url to new value
$('#submitfilteredlink').attr('href',url);
}); });
}); })(jQuery);
</script> </script>
<?php <?php