Correzione per il salvataggio dei select in readonly

This commit is contained in:
Dasc3er 2020-11-27 18:32:17 +01:00
parent 03e8b3a26e
commit 7fdeb0ea6a
2 changed files with 9 additions and 16 deletions

View File

@ -210,7 +210,7 @@ echo '
<div class="box-body">
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "values": "query=SELECT id, CONCAT_WS(\' - \', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "placeholder": "'.tr('Nessuna zona').'", "help":"'.tr('La zona viene definita automaticamente in base al cliente selezionato').'.", "readonly": "0", "value": "'.$id_zona.'" ]}
{[ "type": "select", "label": "'.tr('Zona').'", "name": "idzona", "values": "query=SELECT id, CONCAT_WS(\' - \', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "placeholder": "'.tr('Nessuna zona').'", "help": "'.tr('La zona viene definita automaticamente in base al cliente selezionato').'.", "readonly": "1", "value": "'.$id_zona.'" ]}
</div>
<div class="col-md-4">

View File

@ -109,24 +109,17 @@ class SelectHandler implements HandlerInterface
$result .= '
</select>';
// Gestione delle proprietà "disabled" e "readonly"
if (in_array('disabled', $extras) || in_array('readonly', $extras)) {
$result .= '
<script>$("#'.$values['id'].'").prop("disabled", true);</script>';
// Rimozione proprietà "readonly" in favore di "disabled"
$pos = array_search('readonly', $extras);
if ($pos !== false) {
$extras[$pos] = 'disabled';
$extras = array_unique($extras);
}
// Ulteriore gestione della proprietà "readonly" (per rendere il select utilizzabile dopo il submit)
if (in_array('readonly', $extras) && empty($source)) {
// Gestione delle proprietà "disabled"
if (in_array('disabled', $extras)) {
$result .= '
<select class="hide" name="'.prepareToField($values['name']).'"'.((in_array('multiple', $extras)) ? ' multiple' : '').'>';
foreach ($values['value'] as $value) {
$result .= '
<option value="'.prepareToField($value).'" selected></option>';
}
$result .= '
</select>';
<script>$("#'.$values['id'].'").prop("disabled", true);</script>';
}
return $result;