Я делал все это неправильно, я использовал значение из сегмента URI и не понимал, что это не идеальный способ. Поэтому я изменил свой подход, и теперь у меня есть все через $ _POST. Я не уверен, правильно ли я делаю это, может кто-то пролить свет? В моем представлении перечислены элементы списка данных, извлеченные из БД. Каждый элемент имеет две ссылки: «Вид» и «Удалить». Код, похоже, работает, но было интересно, можно ли его кодировать лучше. Я забыл, что имя формы не было уникальным, поэтому, когда я пошел удалить запись, она всегда удаляла бы самую новую запись (последнее скрытое поле было установлено).
myview.php (фрагмент)
<?php foreach($records as $record): ?>
<form method="POST" name="myform<?php echo $location->id;?>" action="/location/delete">
<a href="/location/view/<?php echo $location->id;?>">View</a> <a href="#" onclick="document.myform<?php echo $location->id;?>.submit();">Delete</a>
<br />
<input type="hidden" name="location_id" value="<?php echo $location->id;?>">
</form>
<?php endforeach ?>
'Я делал все неправильно,' - говорит кто? Предоставление вашего приложения контролируется, удаление через сегмент URI является вполне жизнеспособным решением. Кроме того, ваш код использует '$ records в качестве $ record', но вы называете его' $ location' - не подходит правильно – Ross
, и я бы использовал абсолютные URL-адреса, используя метод 'base_url()', чтобы избежать будущей проблемы (перемещение проекта в подпапку..etc) – ifaour
Почему бы не немного поправить приложение и сделать асинхронный пост-запрос для удаления записи? Таким образом вам не придется использовать несколько форм вообще. – Myth