один из способов сделать это - объявить переменную.
var inputValue;
$('#checkbox').change(function(){
if ($('#checkbox').is(':checked')){
inputValue = $('.test').val();
$('.test').val('');
} else {
$('.test').val(inputValue);
}
});
Для нескольких полей ввода. Идея @Rashid потрясающая. Сохраните значение в атрибуте data-value. И если флажок снят, вы можете получить значения, используя атрибут data-value.
$('#checkbox').change(function() {
if($('#checkbox').is(':checked')) {
$.each($('.test'),function(){
$(this).attr('data-value',$(this).val()).val("");
});
} else {
$.each($('.test'),function(){
$(this).val($(this).attr('data-value'));
});
}
});
Это невозможно стандартным способом в MySQL. Вы должны использовать триггер.
Например, следующее сравнивает значение ID_USER
, которое было передано в операторе обновления, с именем текущего пользователя базы данных и прерывает обновление, если они отличаются, используя синтаксис SIGNAL , чтобы поднять ошибку.
DELIMITER $
CREATE TRIGGER checkUpdateTable1
BEFORE UPDATE ON Table1
FOR EACH ROW
BEGIN
SELECT 1
FROM mysql.user
INTO @is_root
WHERE super_priv='Y' AND USER() = CONCAT(user, '@', host);
IF (@is_root IS NULL AND NEW.ID_USER <> USER()) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'error message';
END IF
END
$
DELIMITER ;
Примечание: после комментария Рэймонда Нейланда я отредактировал пост, чтобы пользователи SUPER
могли обновить любую строку.