контроллер
function delete_payment($payment_id) { $this->sale_lib->delete_payment($payment_id); $this->_reload(); }
Посмотреть
<?php echo anchor("sales/delete_payment/$payment_id",'['.$this->lang->line('common_delete').']');?>
$ Payment_id можно использовать как «Подарочная карта: 1» или «Подарочная карта: 12345983984334»,
Когда это подарочная карта: 1 url автоматически декодируется и функция удаления работает, когда она является более длинной строкой, например, подарочной картой: 12345983984334 «URL НЕ декодируется.
URL-адреса:
Http: //localhost/index.php/sales/delete_payment/Gift%20Card: 1
Http: //localhost/index.php/sales/delete_payment/Gift%20Card: 12345983984334
Первый работает, второй – нет
Фактически, я просто попытался воспроизвести вашу ситуацию на своей локальной машине (WAMP в Windows 7), и вы правы. Я пробовал все основные браузеры (FF4, IE9, Chrome) и не видел различий.
Хотя это на самом деле не отвечает на ваш вопрос, вы всегда можете прибегнуть к обходному пути, подобному этому с помощью php function rawurldecode :
function delete_payment($payment_id) { $decoded_id = rawurldecode($payment_id); $this->sale_lib->delete_payment($decoded_id); $this->_reload(); }
Таким образом, у вас будет ваш «идентификатор» в форме « Gift Card:123456789
(я пробовал с разными длинами и работал), готовый для вашей модели.
используйте% 3A вместо: Это закодированный «:»
… следующее из моего комментария …
Если бы вы продолжили путь использования строки URI для выполнения удаления, то почему бы просто не указать идентификационный номер в качестве другого сегмента URI? – Удаляет :
– Удаляет проблему кодирования URI!
Предполагая, что вы уже используете какой-либо URI-повторный набор или URI для сопоставления приложений, тогда это должно быть легко реализовать поверх того, что у вас уже есть. Кроме того, он должен упростить способ получения и использования этого значения и, возможно, обработать любые ошибки!
Мой подход к программированию и разработке приложений:
– «Если вы найдете что-то трудное, тогда вы делаете это неправильно!»
Извините, если это не поможет.
fyi – Я поддержал ответ @ ankur.singh
Изменить: нашел это здесь, в StackOverflow, который может быть полезен!