Yii Ajaxsubmit и вкладки

Хорошо, у меня есть рабочий код, использующий ajax submit для захвата и вставки записей в мою базу данных. В настоящее время я должен перейти от одного вида моделей к другому, чтобы выполнить это. Я пытаюсь объединить весь код и выполнить из представления в первой модели, хотя.

Ниже мой код пытается это сделать. Он отображается в виде логических потоков.

В этом коде ниже я использую вкладку и выполняю частичное рендеринг в ModelA, а затем в конечном итоге вызываю ajaxSubmitButton из ModelB и использую контроллер ModelB для ввода данных в мою базу данных.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что она всегда вставляет запись, но вместо ввода правильной записи она вставит первую запись, отображаемую в частичном рендере (ItemId = 1, независимо от того, из какого элемента я выполняю код).

<?php
//Model A View 
$tabs = array(
array('id' => 'tab1', 'label' => 'tab', 'content' => $this->renderPartial('/modelB/_modelBView', array('model' => $model), true)),
);

$this->widget('bootstrap.widgets.TbTabs', array(
'type' => 'tabs',
'tabs' => $tabs,
));


//_modelBView
if (!Yii::app()->user->isGuest)
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view',
    'template' => '{items}}',
    )); 


//_view
echo $data->checkItem;


//ModelB
public function getCheckItem ()
{
    if (something...)
        {
            echo 'Status Good'; 
        }
    else {
        echo CHtml::ajaxSubmitButton(
                'Get Item',          
                array('/modelB/getItem'), 
                array(
                    'type'=>'POST',
                    'data' => array('ItemId' => $this->ItemId, 'Type' => $this->Type),
                    'success' => "function(){window.location='".Yii::app()->createUrl('/modelC/list') . "'}",
                )
            ); 
    }
}


//ModelB Controller
public function actionGetItem() 
{
    $connection = yii::app()->db;
    $transaction=$connection->beginTransaction();
    try 
    {   
        $connection = yii::app()->db;
        $sql = "INSERT INTO modelC (ItemId, Type)
                        VALUES(:item, :type)";
        $command=$connection->createCommand($sql);
        $command->bindValue(":item", $_POST['ItemId']);
        $command->bindValue(":type", $_POST['Type']);
        $command->execute();

        $transaction->commit();
    }
    catch(Exception $e)
    {
        $transaction->rollBack();
    }
}

0 ответов

Другие вопросы по тегам