oc-buddies-plugin icon indicating copy to clipboard operation
oc-buddies-plugin copied to clipboard

Checkbox property not updating

Open ssi-com-pl opened this issue 5 months ago • 4 comments

In buddies/properties I added 'accept-terms' chceckbox. In my theme I use this code to update profile fields:

{% set obUser = UserData.get %}

{% if obUser.isNotEmpty %}
    <form class="ajaxForm form--changedata" href="{{ 'profile/edit'|page }}">
        <div class="row">
            <div class="col-12 col-md-4">
                {% partial 'components/input' label="Name" name="name" type="text" value=obUser.name %}
                {% partial 'components/input' label="Surname" name="last_name" type="text" value=obUser.last_name %}
                {% partial 'components/input' label="Phone" name="phone" type="text" value=obUser.phone %}
            </div>
            <div class="col-12 col-md-4">
                {% partial 'components/input' label="Street" name="property[street]" type="text" value=obUser.property['street'] %}
                {% partial 'components/input' label="City" name="property[city]" type="text" value=obUser.property['city'] %}
                {% partial 'components/input' label="Country" name="property[country]" type="text" value=obUser.property['country'] %}
            </div>
            <div class="col-12 col-md-4">
                {% partial 'components/input' label="Terms" name="property[accept-terms]" type="checkbox" value=obUser.property['accept-terms'] checked=obUser.property['accept-terms'] %}
            </div>
        </div>
        <div>
            <button class="button button--changedata" type="submit">Save</button>
        </div>
    </form>
{% else %}
    {% partial 'user/login' %}
{% endif %}

Here is input partial:

<div class="input input--{{type}}">
    {% if type=='radio' or type=='checkbox' %}
        <label class="input__label input__label--{{type}}" for="{{ id ? id : name }}">{{ label | raw }}
            <input class="input__item"
                   type="{{ type }}"
                   id="{{ id ? id : name }}"
                   name="{{ name }}"
                   value="{{ value }}"
                   {% if checked %}checked="checked"{%endif%}
                    {% if required %}
                        required="required"
                    {% endif %}
            >
            <span class="input__checkmark input__checkmark--{{ type }}"></span>
        </label>
    {% elseif type=='textarea' %}
        <label class="input__label" for="{{ id ? id : name }}">{{ label }}</label>
        <textarea class="input__item" type="{{ type }}" rows="4" id="{{ id ? id : name }}" name="{{ name }}" value="{{ value }}"></textarea>
    {% else %}
        <label class="input__label" for="{{ id ? id : name }}">{{ label }}</label>
        <input class="input__item" type="{{ type }}" id="{{ id ? id : name }}" name="{{ name }}" value="{{ value }}">
    {% endif %}
</div>

Text fields work great, but checkbox field don't - checked value are not saved. What am I doing wrong?

ssi-com-pl avatar Sep 23 '24 14:09 ssi-com-pl