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 ]) ) {
$filteredvalues['value'] = explode(',', $_GET[ $fieldname ]);
//$filteredvalues['value'] = ($_GET[ $fieldname ]);
};
//end check for values in url
@ -62,12 +61,7 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<?php foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?>
<div class="filter" data-filter="<?php echo $fields['name'];?>">
<input
class="ofisuport-filter"
type="checkbox"
<?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?>
value="<?php echo $choicevalue ?>"
name="<?php echo $fields['name'];?>" />
<input class="ofisuport-filter" type="checkbox" name="<?php echo $fields['name'];?>" <?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?> value="<?php echo $choicevalue ?>" />
<label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label>
</div>
@ -85,8 +79,8 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<?php }; //end if type checkbox ?>
<?php }; //end foreach groupkey field ?>
<p><b>Results:</b> <span id="results"></span></p>
<button type="submit" class="button-more">enviar</button>
<?php //echo '<p><span id="filterlink"></span></p>';?>
<p><a id="submitfilteredlink" name="submit-ajut" class="button button-more" href="">enviar</a> </p>
</form>
<?php //close the form and subit ?>
@ -96,87 +90,77 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
<script type="text/javascript">
//https://wordpress.stackexchange.com/questions/383599/form-checkbox-value-going-to-dynamic-url
// sample form on submiit
//
(function($) {
// change
//$('#archive-filters').on('click', 'button', function(){
$('#archive-filters').on('click', 'input', function(){
$('#form-ajuts').on('submit', function(e) {
// vars
var url = '<?php echo home_url('ajuts/'); ?>';
args = {};
var appendtoURL = '';
var eachfiltered = '';
var valueschecked = '';
// prevent default
e.preventDefault();
// set empty submission object
let submission = {};
// for each of this form submit event target object entries as key/field
for (const [key, field] of Object.entries(e.target)) {
// if object entry (field) has a name attribute
if (field.name) {
// if field type is
if (field.type === 'checkbox') {
// set field name as array
submission[field.name] = [];
// if checkbox is checked
if (field.checked) {
// add name/value to submission object
submission[field.name].push(field.value);
}
} else if (field.value) {
// add name/value to submission object
submission[field.name] = field.value;
}
}
}
// 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
// loop over filters
$('#archive-filters .filter').each(function(){
// check if is first appearance of each
if( eachfiltered != $(this).data('filter') ){
// save already calculated field=val01,val02,val03
if( eachfiltered != '' && valueschecked != '' ){
// remove last ','
valueschecked = valueschecked.slice(0, -1);
appendtoURL += eachfiltered +'=' +valueschecked +'&';
};
// start new fieldname filtered
eachfiltered = $(this).data('filter');
// reset values
valueschecked = '';
// find checked inputs
$(this).find('input:checked').each(function(){
// if not empty save value and ,
if( $(this).val() != '' ){
valueschecked += $(this).val() + ',';
};
});
//alert( appendtoURL +":" +eachfiltered +"=" +valuescheked);
} 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>
<?php