X-core
@X-core
начинающий веб разработчик

Как изменить текст элемента, но чтобы он оставался при перезагрузке страницы?

Есть чекбокс, который обрабатывается аяксом. Осуществил показ текста при разном положении чекбокса(нет галочки = текст- "Открыто", есть - "Закрыто"). Ставлю галочку,текст "Закрыто"появляется, но при перезагрузки страницы текст ссбрасывает на "Открыто", галочка стоит.

За ранее благодарю за отведенное внимание на мой вопрос.
Собственно код:
шаблон:
<td>
                    <input type="checkbox" id="itemStatus_{$item['id']}"  {if $item['status']}checked="checked"{/if} onclick="updateOrderStatus('{$item['id']}');"/>
                    <p class="msg">Открыт</p>
</td>


файл js:

function updateOrderStatus(itemId) {
    var status = $('#itemStatus_' + itemId).attr('checked');

    if(!status) {
        status = 0;
       
    }else {
        status = 1;
        $('.msg').text('Закрыт');

    }
    var postData = { itemId: itemId, status: status};

    $.ajax({

        type: 'POST',
        async: true,
        url: '/admin/setorderstatus/',
        data: postData,
        dataType: 'json',
        success:function (data) {
            if(!data['success']) {
                alert(data['message']);
            }

        }
    });
}

controller:
/**
* Установление нового статуса заказа
*/
function setOrderStatusAction() {

    $itemId = $_POST['itemId'];
    
    $status = $_POST['status'];

    $res = updateOrderStatus($itemId,$status);

    if($res) {
        $resData['success'] = 1;
    }else {
        $resData['success'] = 0;
        $resData['message'] = 'Ошибка установки статуса';
    }

    echo json_encode($resData);
    return;
}
  • Вопрос задан
  • 889 просмотров
Решения вопроса 1
Exploding
@Exploding
wtf?
Перечитал внимательней:)
Через css сделайте с помощью :after для чекбокса. Текст кириллицу с помощью конвертера юникода сгенерите.
И на странице будет меньше"мусора" для ПС и париться не надо будет с переключениями статусов текстовых.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Точно так-же как вы делаете if (status) checked можно сделать и с открыт/закрыт.
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Есть чекбокс, который обрабатывается аяксом. Осуществил показ текста при разном положении чекбокса(нет галочки = текст- "Открыто", есть - "Закрыто"). Ставлю галочку,текст "Закрыто"появляется, но при перезагрузки страницы текст ссбрасывает на "Открыто", галочка стоит.

Самое простое - сохранять значение checked в кукисах. А потом, при загрузке страницы, проверять кукис и ставить нужное значение динамически. Т.о. достигается, что для каждого пользователя будет его уникальное значение.

UPD
Как и обещал в комментариях, выложил оптимизированный код, решающий задачу сохранения состояния чекбокса после перезагрузки страницы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы