Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajaxSubmitButton:插入问题_Php_Mysql_Ajax_Yii - Fatal编程技术网

Php 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

我在这里尝试的是通过从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"}', 
        ));?>

  • 您正在将字符串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?