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();
}
}