Я использую CakePHP 2.3.
У меня есть две среды, в которых у меня есть веб-приложение. В тестовой среде с точно такой же версией приложения (все файлы одинаковые) у меня возникла проблема с методом Form->postLink
.
Он показывает эту ошибку на консоли Javascript:
Uncaught TypeError: объект # не имеет метода «отправить» пользователям: 119 onclick
Сравнивая результирующий HTML из обеих сред, я могу заметить, что атрибуты name
и id
, сгенерированные этим методом, повторяются более одного раза на одной и той же странице (так не должно быть).
Это код, используемый для создания этих почтовых ссылок:
foreach($users as $user){
$delete = $this->Form->postLink(__('Delete'), array('action' => 'delete', $user['user_id']), __('Are you sure you want to delete %s?', $user['user_id']));
}
Это проблемный сгенерированный HTML с повторяющимися значениями для id
и name
, как вы можете видеть:
<!-- link 1 -->
<form action="delete/1/" name="post_51e8019d095f1" id="post_51e8019d095f1" style="display:none;" method="post">
<input type="hidden" name="_method" value="POST"/>
</form>
<a href="#" onclick="if (confirm('Are you sure you want to delete blabla?')) { document.post_51e8019d095f1.submit(); } event.returnValue = false; return false;">Delete</a>
<!-- link 2 -->
<form action="delete/2/" name="post_51e8019d095f1" id="post_51e8019d095f1" style="display:none;" method="post">
<input type="hidden" name="_method" value="POST"/>
</form>
<a href="#" onclick="if (confirm('Are you sure you want to delete blabla22?')) { document.post_51e8019d095f1.submit(); } event.returnValue = false; return false;">Delete</a>
Почему это происходит? Может ли это быть как-то связано с конфигурацией веб-сервера? Другого объяснения этому я не вижу...
Спасибо.
postLink()
. Должно быть что-то вродеarray('action' => 'delete', $user['User']['user_id'])
. - person Cris Sawfish   schedule 18.07.2013foreach
должно быть что-то еще. - person Cris Sawfish   schedule 18.07.2013postLink()
. Я только что проверил ваш цикл в своей системе (конфигурация среды разработки), и он отлично работает! Поскольку идентификатор формы создается с использованием текущего микровремени (проверьте функция uniqid) , может быть, у вас что-то происходит с настройками php? - person Cris Sawfish   schedule 18.07.2013name
иid
этих форм, а также в тех же значениях до события.submit()
js. Что-то дает сбой функцииpostLink
... - person Alvaro   schedule 19.07.2013uniqid
: samjlevy.com/2013/05/php-uniqid-not-unique-on-iis-7-5 Возможно, мне придется изменитьpostLink
исходный код, добавив второй параметр. - person Alvaro   schedule 19.07.2013