我在这里尝试做的是通过从 AjaxSubmitButton 传递一些值并调用控制器/动作来将它们插入到表中。
这是控制器动作
public function actionAddit()
{
$connection = yii::app()->db;
$transaction=$connection->beginTransaction();
try
{
$connection = yii::app()->db;
$sql1 = "INSERT INTO apTracker (id, title,createdDate,owner) VALUES(:id, :title,:createdDate,:owner)";
$command=$connection->createCommand($sql1);
$command->bindValue(":id", $_POST['id']);
$command->bindValue(":title", $_POST['title']);
$command->bindValue(":createdDate", new CDbExpression('NOW()'));
$command->bindValue(":owner", $_POST['o']);
$command->execute();
$transaction->commit();
}
catch(Exception $e)
{
$transaction->rollBack();
$this->refresh;
}
这是视图文件中的 Ajaxbutton:
<?php echo CHtml::ajaxSubmitButton('Yes!',
array('/entry/addit'),
array(
'type'=>'POST',
'data' => array('id' => '1','title' => 'Untitled','o'=>'6'),
'success' => 'js:function(){window.location="site/message"}',
));?>
好吧,我不知道这到底是什么,但它不起作用。但是,如果我删除命令 bindvalue 并在 sql 查询本身中硬编码一些值,它就可以工作。所以,我猜这个问题可能是将 AjaxSubmit 部分的值传递给控制器。我在这里做错了什么,但不能完全弄清楚是什么。有帮助吗?
编辑:好的,很抱歉编辑混乱,问题又回到了原来的形式。
我已经尝试过 eggyal 的解决方案,但是,我仍然无法让它发挥作用。