2012-05-02 2 views
0

Я пытаюсь подключить кнопку в представлении к db. Я знаю, что мне нужно использовать java-скрипт/Ajax или jQuery и onclick(). Но что мне делать дальше? Как связать результат нажатия кнопки с переменной php, которую я могу сохранить в БД?Как подключить кнопку в представлении к db в воспламенителе кода?

Обновление: (ANS) То, что мне не хватало, было то, что к контроллеру можно получить доступ из вида. Просто сделайте это:

<?php echo form_open('form/submit'); ?> 
<br><br> 
Title<br> 
<input type="text" name="title"><br> 
Body<br> 
<input type="text" name="body"> 
<input type="submit" value="New"> 

Это возвращает форму обратно в функцию отправки контроллера, и вы можете делать все, что хотите. Спасибо за ответы!

+0

Есть несколько способов сделать это? Один из способов - подключиться к db в представлении, но я смущен моделью MVC здесь, как в том, где я должен позвонить в db? –

+0

вы должны хотя бы взглянуть на [блок-схему в CodeIgniter] (http://codeigniter.com/user_guide/overview/appflow.html). – Joseph

+0

Хорошо, это имеет смысл, именно поэтому я смущен. Мы знаем, что вход должен обрабатываться только в контроллере: мы получаем пользовательский ввод из представления и передаем его контроллеру, а контроллер вызывает модель. Я прав? –

ответ

2

Создать представление, которое обрабатывает запросы AJAX правильно (возможно, только имеет выход JSON)

, а затем сделать запрос к нему с помощью AJAX с точки зрения с помощью кнопки.

Внутри вашего ajax.php вы можете настроить соответствующий код для доступа к db.

Вы jquery/javascript ajax-запрос просто будет в представлении, у него нет своего места в структуре MVC-кода, с точки зрения CI это всего лишь два представления.

+0

Hebert Penito Это безопасный способ подключения к db? Может ли злоумышленник совершать подобные звонки? Я думал, что лучший способ справиться с любыми вызовами db в подходе MVC - это поставить любой вызов db внутри модели? Должен ли я использовать Ajax.php внутри модели? –

+0

Ну, это действительно зависит от того, что вы хотите сделать после подключения к db. Не нажимайте напрямую INSERT или UPDATE любую из переменных REQUEST, потому что это просто вызывает проблемы. Обычно функциональность db io входит в модель, но я предлагаю попытаться выяснить намерения запросов в контроллере, а затем перейти к соответствующему действию (функции), которое находится в модели. Как правило, мне нравится использовать переменные SESSION, чтобы убедиться, что запрос пришел с вашего сайта, например, установите токен и убедитесь, что он соответствует по обеим сторонам REQUEST (страница, сделавшая запрос и ajax.php) –

Смежные вопросы