Linguaggio
Javascript,PHP
Versione
V1.0
Tipologia
Snippet
Sito
Parametri Snippet
campo, form, sorting_par, sorting_dir
Changelog
Progetti
Sicurezza Pierro
V1.0
Sicurezza Develope
V1.0
Note
Trasforma un multi select in due liste con elementi presenti e mancanti Descrizione dei campi:
- campo: id del campo da trasformare
- form: id del form dove si trova il campo
- sorting_par: (opzionale) parametro per cui ordinare le liste
- sorting_dir: (opzionale) tipo di ordinamento
Contenuto
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://sicurezza.experior.solutions/master/wp-json/gf/v2/forms/'.$form, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Basic YWRtaW5fc2ltb25lOkthbWVsb3M3NkBfXw==' ), )); $response = curl_exec($curl); curl_close($curl); $array = json_decode($response); foreach ($array->fields as $field) { if ($field->id==$campo) $modulo = $field->{'gppa-choices-primary-property'}; } $select_field_id = "input_".$form."_".$campo; ?> <div class="attrezzature_esterno"> <!--Presenti--> <div class="attrezzature_contenitore_presenti"> <h5>Assegnate</h5> <?php $search_criteria = array( 'status' => 'active', ); $sorting = array( 'key' => $sorting_par, 'direction' => $sorting_dir); $paging = array( 'offset' => 0, 'page_size' => 10000); $results = GFAPI::get_entries($modulo, $search_criteria, $sorting, $paging ); foreach ($results as $result) { echo '<div style="display:none" class="attrezzatura_singola" id="p'.$result['id'].'"><a onclick="rimuovi_attrezzatura('.$result['id'].')">'.$result['1'].'</a></div>'; } ?> </div> <!--Mancanti--> <div class="attrezzature_contenitore_mancanti"> <h5>Non assegnate</h5> <div class="elenco_mancanti"> <?php foreach ($results as $result) { echo '<div class="attrezzatura_singola" id="'.$result['id'].'"><a onclick="aggiungi_attrezzatura('.$result['id'].')">'.$result['1'].'</a></div>'; } ?> </div> </div> </div> <script> function aggiungi_attrezzatura(id) { jQuery("#<?php echo $select_field_id ?> option[value='" + id + "']").prop("selected", true); jQuery("#"+id).hide(); jQuery("#p"+id).show(); } function rimuovi_attrezzatura(id) { jQuery("#<?php echo $select_field_id ?> option[value='" + id + "']").prop("selected", false); jQuery("#"+id).show(); jQuery("#p"+id).hide(); } jQuery( document ).ready(function() { var elements = jQuery('#<?php echo $select_field_id ?>').val()+''; var array = elements.split(','); //inizializzazione mancanti for (let i = 0; i < array.length; i++) { jQuery("#"+array[i]).hide(); } //inizializzazione presenti for (let i = 0; i < array.length; i++) { jQuery("#p"+array[i]).show(); } }); jQuery( document ).on( "gppa_updated_batch_fields", function(event, form_id){ jQuery.ajax({ url : 'https://sicurezza.experior.solutions/master/wp-content/themes/pro-child/api/snippet/get_all_elements.php', type : 'POST', data: JSON.stringify({ form: <?php echo $form ?>, sorting_par: j<?php echo $sorting_par ?>, sorting_dir: <?php echo $sorting_dir ?> }), contentType: "application/json; charset=utf-8", dataType: 'json', encode : true, success: function(response){ var array_string = response.string.split(','); for (let i = 0; i < array_string.length; i++) { jQuery("#"+array_string[i]).show(); var elements2 = jQuery('#i<?php echo $select_field_id ?>').val()+''; var array2 = elements2.split(','); //inizializzazione mancanti for (let i = 0; i < array2.length; i++) { jQuery("#"+array2[i]).hide(); } //inizializzazione presenti for (let i = 0; i < array2.length; i++) { jQuery("#p"+array2[i]).show(); } } } }); }); </script>