Я хотел бы создать кнопку, которая может быть использована для заполнения таблицы в моем db одним щелчком мыши.
Я просто не уверен, что мне нужно сделать здесь, чтобы это произошло. Могу ли я назначить метод, который будет выполняться с помощью кнопки? Или просто есть значения, полученные в моем контроллере? Ниже есть что-то вроде того, что я хочу выполнить, но с помощью кнопки.
public function addInterest($interest) { $interest->UserId=Yii::app()->user->id; $interest->ItemId=$this->ItemId; return $interest->save(); }
* * Дополнительная информация в ответ на Jaison Justus
В этой реализации я использую контроллер и вид из модели A (ItemId), где должна отображаться кнопка. Тогда есть модель B (UserId). Принимая информацию из модели A (ItemId) и Model B (UserId), я хочу заполнить модель C ($ interest) с помощью ItemId и UserId после нажатия кнопки. Похоже, CJuiButton может предоставить средства для его создания из-за того, что я могу отключить / скрыть кнопку после выбора один раз. Я просто не знаком с использованием кнопок, отличных от формы, в которой пользовательский ввод собран, как ссылки или для всплывающих сообщений.
Вышеприведенный код в настоящее время находится в модели модели A. С приведенным ниже кодом в контроллере модели A все работает для заполнения модели C, если я использую форму и собираю ввод. Поскольку я не требую ввода других, а затем выбираю кнопку у пользователя, форма не имеет права вставлять в нее, и поэтому я знаю, что не могу использовать if(isset($_POST['Interest']))
как у меня ниже.
public function actionView($id) { $items=$this->loadModel($id); $interest=$this->newInterest($items); $this->render('view', array( 'model' => $items, 'interest' => $interest, )); } protected function newInterest($items) { $interest=new Interest; if(isset($_POST['Interest'])) { $interest->attributes=$_POST['interest']; if($items->addInterest($interest)) $this->refresh(); } return $interest; }
В ответ на VarioN
Вот попытка использования ajax. Однако это не работает и дает ошибку 500 при запуске. Является ли действие моего контроллера подходящим для того, что я пытаюсь сделать здесь?
контроллер
public function actionAddInterest() { $connection = yii::app()->db; $sql1 = "INSERT INTO interest (UserId, ItemId) VALUES(".Yii::app()->user->id.",".$this->ItemId.")"; $connection->createCommand($sql1)->execute(); }
Посмотреть
<?php echo CHtml::ajaxLink( 'Add Interest', array('/item/addInterest'), array('update'=>'#req_res') ); ?>