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>
