FriendsOfREDAXO / mblock

Beliebig viele Datenblöcke innerhalb eines Moduls, per Drag & Drop verschiebbar.
MIT License
81 stars 10 forks source link

MultiSelect Felder funktionieren nicht #25

Closed ghost closed 7 years ago

ghost commented 8 years ago

MultiSelect Felder werden zwar korrekt angezeigt, speichern ihre Inhalte aber nicht. Klappt das bei jemandem? :)

ghost commented 8 years ago

Es liegt wohl daran dass die dem MultiSelect-Feld nachfolgenden hidden Inputs nicht geupdated werden. Vmtl. fehlt hier der entsprechende Bind im mBlock.

Wer wie ich eine Quick&Dirty Lösung braucht fügt folgendes am Ende seiner Moduleingabe an:

<script type="text/javascript">
$(".mblock_wrapper").bind("DOMSubtreeModified", function() {

    $('.mblock_wrapper select[multiple]').each(function(e) {
        $(this).val($(this).next('input[type="hidden"]').val().split(","));
    });

    $('.mblock_wrapper select[multiple]').change(function() {
        $(this).next('input[type="hidden"]').val($(this).val());
    });

});
</script>
joachimdoerr commented 8 years ago

@ex-q magst du ein pull-request fertigen?

ghost commented 8 years ago

Hab ich ehrlich gesagt versucht, aber bin nicht durchgestiegen wo/wie man es korrekt fixt :/

joachimdoerr commented 7 years ago

Ok ich werd mir das mal anschauen, ggf. gibt es dann morgen ein fix dafür.

joachimdoerr commented 7 years ago

ist gefixt. Problem lag am mform javascript - MBlock arbeitet jetzt auch mit multiple selecte außerhalb von MForm. https://github.com/FriendsOfREDAXO/mblock/commit/b6966b2959283e0009addfb24221284f0e6530e4 https://github.com/FriendsOfREDAXO/mblock/commit/9cabb13a947d16f139d022ed942211229041c75d

ghost commented 7 years ago

@joachimdoerr vielen Dank für die neue Version. Ich habe es getestet und noch einen kleinen Bug gefunden: Die Auswahl der Multi-Selektfelder wird scheinbar nur beim Erstellen des Blocks übernommen. Wenn man den Block nachträglich editiert werden keine Änderungen mehr gespeichert...

joachimdoerr commented 7 years ago

Bitte mal testen: https://github.com/FriendsOfREDAXO/mblock/releases/tag/1.6.1

<?php

$form = <<<EOT
<div class="form-group">
    <label class="col-sm-2 control-label" for="m1_locations">Arbeitsort</label>
    <div class="col-sm-10">
        <select class="form-control" name="REX_INPUT_VALUE[1][0][1][]" id="m1_locations" size="2" multiple>
            <option value="geneva">Genf</option>
            <option value="zurich">Zürich</option>
        </select>
    </div>
</div>
EOT;

//echo $form;
echo MBlock::show(1, $form);
?>