Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   При изменении цвета записывать значение в php переменную (https://javascript.ru/forum/misc/74278-pri-izmenenii-cveta-zapisyvat-znachenie-v-php-peremennuyu.html)

_marisha 27.06.2018 08:59

При изменении цвета записывать значение в php переменную
 
Доброго времени суток!
Есть чекбокс
<input
            type="checkbox"
            form="ORDER_FORM"
            name="sbor"
            id="sbor"
            value = "22"
        onclick="highlight(this);"
        />

При клике на данный чекбокс происходит смена цвета
<script>
    function changeTrColor() {

        var elem = document.getElementsByTagName('input');
        for(i = 0; i < elem.length; i++) {
            var tr = elem[i].parentNode.parentNode;
            if (elem[i].checked)
                tr.style.background = "#b2ffb2";
        }
    }
    window.onload = changeTrColor;

    function highlight(chkbox) {

        chkbox.parentNode.parentNode.style.background = (chkbox.checked ? "#b2ffb2" : "#e0ffff");
    }
</script>

Возможно ли сделать так, если чекбокс отмечен и цвет #b2ffb2, тогда записать значение (например 1) в php переменную и чтобы при обновлении страницы отмеченный чекбокс не сбрасывался? Спасибо.
На данный момент при обновлении страницы чекбокс сбрасывается.

ksa 27.06.2018 09:02

Цитата:

Сообщение от _marisha
Возможно ли сделать так, если чекбокс отмечен и цвет #b2ffb2, тогда записать значение (например 1) в php переменную и чтобы при обновлении страницы отмеченный чекбокс не сбрасывался?

Нужно отправлять запрос на сервер и в нем передавать нужное значение.

А можно записать в куки или локальное хранилище. Тогда можно контролировать цвет на клиенте. ;)

_marisha 27.06.2018 09:46

ksa, спасибо что откликнулись )
Возможно предоставить пример с вариантом "А можно записать в куки или локальное хранилище" на основании предоставленного кода?

ksa 27.06.2018 10:43

Цитата:

Сообщение от _marisha
Возможно предоставить пример с вариантом "А можно записать в куки или локальное хранилище" на основании предоставленного кода?

По кукам...
https://learn.javascript.ru/cookie
https://ruseller.com/lessons.php?id=593

По хранилищу...
http://htmlbook.ru/html5/storage
https://web.izjum.com/javascript-localstorage

_marisha 27.06.2018 11:59

ksa, к примеру, нашли значение при отмеченном чекбоксе
function changeTrColor() {

    var elem = document.getElementsByTagName('sbor');

    for(i = 0; i < elem.length; i++)
    {

        var tr = elem[i].parentNode.parentNode;
        var checked = elem[i].checked;
        if (elem[i].checked)
            tr.style.background = "#b2ffb2";
        document.getElementsByTagName('sbor')[0].value = 5;
    }
}

// Вызываем функцию changeTrColor при загрузке страницы
window.onload = changeTrColor;

function highlight(chkbox)
{
    chkbox.parentNode.parentNode.style.background = (chkbox.checked ? "#b2ffb2" : "#e0ffff");
    if (chkbox.checked)
    {
        var Sbor = 1;
        if (Sbor == 1)
        {
            //var SborTrue = 2;
            document.cookie = "SborTrue=2";//добавлено значение 2 в куки
            function get_cookie (cookie_name)
            {
                var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

                if ( results )
                    return ( unescape ( results[2] ) );
                else
                    return null;
            }
            var SborTrue = get_cookie ( "SborTrue" );
            alert(SborTrue);
        }

    }
}

Подскажите, пожалуйста, как это значение записать в php переменную?
После обновления страницы чекбокс слетает :(

ksa 27.06.2018 13:26

Цитата:

Сообщение от _marisha
как это значение записать в php переменную?

Отправить ajax-запрос на сервер со значением некой переменной...
https://learn.javascript.ru/ajax-xmlhttprequest

На сервере прочитать эту переменную и сделать выводы.

Aetae 27.06.2018 14:16

Ну вообще не обязательно на сервер пулять дополнительно. Кук достаточно. Просто сервер должен сам брать значение из кук, если есть.

_marisha 28.06.2018 05:09

Aetae, спасибо что откликнулись )
А не могли бы Вы на моем примере показать как сделать )

Aetae 28.06.2018 12:26

JS:
function highlight(chkbox){
    chkbox.parentNode.parentNode.style.background = (chkbox.checked ? "#b2ffb2" : "#e0ffff");
    document.cookie = 'sbor=' + Number(chkbox.checked) + '; path=/; expires=Mon, 31 Jan 4000 00:00:00 GMT';
}


PHP:
<input 
  type="checkbox"
  form="ORDER_FORM"
  name="sbor"
  id="sbor"
  value = "22"
  onclick="highlight(this);"
  <?=$_COOKIE['sbor'] ? 'checked' : ''?>
/>

_marisha 29.06.2018 07:38

Aetae, спасибо Вам огромное, то что нужно :) Очень сильно помогли, ещё раз спасибо :thanks:


Часовой пояс GMT +3, время: 05:57.