Почему CakePHP не работает, когда я использую jquery для изменения значений скрытых входов? - PullRequest
0 голосов
/ 29 ноября 2009

Я использую cakephp для создания опроса и хочу использовать javascript (в частности, jquery, поскольку он используется в других местах) для изменения некоторых скрытых входных данных.

Чтобы быть понятным, комментирование оскорбительных строк jquery позволяет торту делать все правильно. Но когда значения модифицируются с помощью jquery, это происходит:

(default) 2 queries took 2 ms
(источник: tdwright.co.uk )

Чтобы взять только один из спрятанных входных данных, вот соответствующий код:

<?php echo $form->hidden('bigLayout', array('value'=>'1')); ?>

<script> $('#ResponseBigLayout').val('0');</script>

Кроме того, я могу использовать Firebug для репликации ошибки, используя только эту строку javascript. Использование данных тампера не дает ничего очевидного. Наконец, изменение значения по умолчанию в php не вызывает ошибку.

Кто-нибудь знает, что здесь может происходить?

Ответы [ 2 ]

1 голос
/ 03 декабря 2009

Если я изменяю значения формы (для скрытых) или атрибуты (т.е. отключенные), тогда в контроллере beforeFiler я использую что-то вроде этого:

function beforeFilter() {
    parent::beforeFilter();

    if ($this->action == 'add') {
        $this->Security->enabled = false;
    }
}
1 голос
/ 29 ноября 2009

Попробуйте использовать

<?php echo $form->hidden('bigLayout', array('value'=>'1','secure'=>false)); ?>

или

<?php echo $form->hidden('bigLayout', array('value'=>'1','secure'=>'false')); ?>

Из источника (FormHelper: hidden()) похоже, что CakePHP для скрытых входов использует secure = true по умолчанию.

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