2013-09-06 2 views
0

У меня есть форма, которая имеет много полей. Мне нужно отобразить некоторые из них как только для чтения/отключенные для пользователей уровня персонала, в то время как пользователи уровня администратора могут сохранять или изменять все поля.Отключенные поля - все еще проходят данные без отключений - CAKEPHP 2

У меня есть следующий javascript, который показывает поля только как прочитанные, но он не передает ни одного из данных, хотя в модель, $ this-> request-> data - пустой массив с этим javascript.

<?php if ($this->Session->read('Auth.User.group_id') == 3) { ?> 

<script type="text/javascript"> 
$(function() { 

$('.adminOnlyField').attr("readonly","true"); 
$('.checkbox.adminOnlyField').attr("onclick","return false"); 
$('.checkbox.adminOnlyField').attr("onkeydown","return false"); 
$('.adminOnlyField').removeClass('required'); 
$('.adminOnlyField').removeClass('date_picker'); 
$('.adminOnlyField').prop('disabled', 'disabled'); 

}); 
</script> 

<?php } ?> 

Мне нужны пользователи персонала, чтобы иметь возможность видеть данные, но не изменять его для этих полей с классом adminOnlyField, остальное они должны иметь возможность редактировать/обновить.

Благодаря

я тогда, хотя, может быть, когда кнопка отправки ударен я мог удалить ReadOnly и инвалидов с JQuery, например следующим образом:

$('.clear_ready_only').click(function(e) 
{ 
    e.preventDefault(); 
    $('.adminOnlyField').removeAttr('disabled'); 
    $('.adminOnlyField').removeAttr('readonly'); 
    $('#CardModifysaleForm').submit(); 
}); 

Это не похоже на работу, хотя?

ответ

0

поля для инвалидов не проходят через POST, вы делаете:

$('.adminOnlyField').attr("readonly","true"); 

, что делает его readonly, и он может пройти через POST, но в конце концов вы отключили же поле снова, выполнив:

$('.adminOnlyField').prop('disabled', 'disabled'); 

эта линия делает это disabled, из-за которого оно не получается POST 'ed. Так что если вы хотите, чтобы сделать его пройти через POST, сделать его readonly, и удалите следующую строку:

$('.adminOnlyField').prop('disabled', 'disabled'); 
+0

Спасибо, вопрос Я бегу в это только для чтения, кажется, не учитывает некоторых полей. Однако инвалид делает это. Как мне обойти это? – sluggerdog

+0

@sluggerdog для выбора полей, которые вы могли бы сделать, например: использовать атрибут «отключен» и добавить скрытое поле ввода, которое содержит выбранное значение поля выбора, таким образом вы можете POST выбранных данных и отключить поле выбора. –

+0

Да, это был мой вариант резервного копирования, но мне также было интересно узнать, могу ли я как-то удалить отключенные и readonly поля при нажатии кнопки отправки? Я положил некоторый образец кода в исходное сообщение, которое я пробовал, но он не работает. Спасибо. – sluggerdog

Смежные вопросы