CakePHP - Javascript - PullRequest
       1

CakePHP - Javascript

0 голосов
/ 03 мая 2011


Мы работаем над приложением, используя платформу CakePHP По сути, это приложение для анкетирования, и у него есть несколько зависимых вопросов, то есть, основываясь на ответе на конкретный вопрос, он должен показать или скрыть следующий

Например, Вопрос: вы женаты? Да / Нет

Если пользователь выбирает Да, то с помощью javascript для ввода пользователя отображается следующий вопрос

Вопрос: Имя супруга

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

Поскольку по умолчанию мы скрываем поле имени супруга, при редактировании оно не отображает поле, даже если для него есть значение

Есть ли какой-нибудь способ, которым CakePHP может справиться с этим, или он требует от нас написания некоторого javascript, чтобы позаботиться об этом?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 марта 2016

Как и другие, я советую вам использовать разные EDIT и ADD экраны.Но вы можете попробовать сделать это с Javascript следующим образом:

<script>
function enableDisableField(targetFieldId){
    var targetField = document.getElementById(targetFieldId);
    var checkbox = event.target;
    console.log(checkbox.checked);
    if (checkbox.checked){
        targetField.disabled = false;
        targetField.value = "empyt";
    }else{
        targetField.disabled = true;
        targetField.value = "empyt";
    }
}

</script>

<label><input type="checkbox" onchange="enableDisableField('married')"/> Merried</label>
<?= $this->Form->input('married',['label' => false, 'disabled']); ?>

Это хорошо работает для ADD, но если вы и EDIT, вы должны изменить значение деактивации в соответствии со значением поля:

<label><input type="checkbox" onchange="enableDisableField('married')"/> Merried</label>
<?= $this->Form->input('married',['label' => false, !isset($user->married) ? 'disabled' : '' ]); ?>
0 голосов
/ 03 мая 2011

CakePHP не управляет этим для вас.Хотя CakePHP очень мощный и отличный фреймворк, он не будет писать такую ​​логику для вас.Вы должны написать это.

Я бы предложил сделать экран EDIT отличным от экрана ADD.Создайте список значений из базы данных и отобразите поля, имеющие значения (и включите в себя все пустые поля, которые должны требовать значений).

Имейте в виду, что возможность многократного использования не обязательно означает, что все действия CRUD вписываются в одно представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...