Compare commits

..

No commits in common. "de60c363e3fd17cf1233a2973523571c879d9d35" and "66340ac819731f9c127b3b17e5d4bafb290c0c72" have entirely different histories.

1 changed files with 91 additions and 75 deletions

View File

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