Fix player form submission using Alpine-driven hidden inputs

Removed name="players" from checkboxes and replaced with a single
x-for block generating hidden inputs from selectedPlayers state,
ensuring correct submission regardless of active step.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Rolf
2026-03-22 11:08:17 +01:00
parent b03e515f75
commit 59a82eb4ad
+8 -3
View File
@@ -173,8 +173,9 @@
{% for u in all_users %} {% for u in all_users %}
<label class="player-option" <label class="player-option"
data-name="{{ u.name | lower }}" data-name="{{ u.name | lower }}"
x-show="{% if u.id == user.id %}true{% else %}!playerSearch || $el.dataset.name.includes(playerSearch.toLowerCase()){% endif %}"> x-show="{% if u.id == user.id %}true{% else %}!playerSearch || $el.dataset.name.includes(playerSearch.toLowerCase()){% endif %}"
<input type="checkbox" name="players" value="{{ u.id }}" :class="selectedPlayers.includes('{{ u.id }}') ? 'selected' : ''">
<input type="checkbox" value="{{ u.id }}"
{% if u.id == user.id %}checked disabled{% endif %} {% if u.id == user.id %}checked disabled{% endif %}
@change="togglePlayer('{{ u.id }}')" @change="togglePlayer('{{ u.id }}')"
:checked="selectedPlayers.includes('{{ u.id }}')"> :checked="selectedPlayers.includes('{{ u.id }}')">
@@ -190,7 +191,6 @@
</label> </label>
{% endfor %} {% endfor %}
</div> </div>
<input type="hidden" name="players" value="{{ user.id }}">
</div> </div>
</div> </div>
@@ -293,6 +293,11 @@
</div> </div>
{# Hidden inputs driven by Alpine — always submitted regardless of step #}
<template x-for="pid in selectedPlayers" :key="pid">
<input type="hidden" name="players" :value="pid">
</template>
</form> </form>
</div> </div>
{% endblock %} {% endblock %}