Php ajaxSubmitButton:插入问题
我在这里尝试的是通过从AjaxSubmitButton传递一些值并调用控制器/操作,将它们插入到表中 这是控制器的第一个动作Php ajaxSubmitButton:插入问题,php,mysql,ajax,yii,Php,Mysql,Ajax,Yii,我在这里尝试的是通过从AjaxSubmitButton传递一些值并调用控制器/操作,将它们插入到表中 这是控制器的第一个动作 public function actionAddit() { $connection = yii::app()->db; $transaction=$connection->beginTransaction(); try { $connection = yii::app
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"}',
));?>
您正在将字符串literal“NOW()”
作为:createdDate
参数传递,该参数无效。只需在SQL中使用NOW()
:
$sql1 = '
INSERT INTO apTracker (id, title, createdDate, owner) VALUES
(:id, :title, NOW(), :owner)
';
$command = $connection->createCommand($sql1);
$command->bindValue(':id', $_POST['id']);
$command->bindValue(':title', $_POST['title']);
$command->bindValue(':owner', $_POST['o']);
$command->execute();
第二个($url
)参数应该是字符串,而不是数组:
<?php
echo CHtml::ajaxSubmitButton(
'Yes!',
'/entry/addit',
array(
'type' => 'POST',
'data' => array('id' => '1', 'title' => 'Untitled', 'o'=>'6'),
'success' => 'js:function(){window.location="site/message"}',
)
);
?>
抓得好。两个都修好了,但还是没有运气。还是不行。我正在编辑原始问题以反映这些变化。@redGREENblue:在问题中做这样的变化是不好的。您可以编辑它,并在原始问题下方添加您已更改的内容以及它(仍然)的工作方式。@redGREENblue:另外,请参见我的(添加的)要点#2-ypercube的评论可能同样适用于我!在您当前的编辑中,阅读问题的人(不知道完整的历史记录)认为@eggyal的asnwer毫无意义。有javascript错误吗?如何渲染视图?只是在本地尝试过,效果很好。视图呈现为模式形式(引导CSS)。AjaxButton位于该模式窗体上。这可能是一个问题吗?取决于您如何渲染它。它需要jquery,所以如果您使用rednerPartial
来呈现它,那么可能这就是问题所在。事实并非如此。它被呈现为$this->render('index');你为什么要用SQL呢?是否正在填充$\u POST?