В общем, запилил пока заплатку. В контролер добавил $result_id вот так:
$result_id = '';
if(isset($_POST['productID'])) {
$getProduct = GetProduct::getProd(Yii::$app->request->post('productID'));
$result_id = Yii::$app->request->post('productID');
$result = 'Ошибка';
}
И во вьюшке:
'value' => function($data) use (&$result, &$result_id) {
$cat = $data->attributes['Category'];
$id = $data->attributes['ID'];
$form = Html::beginForm(['/site/category?name='.$cat],'post',['data-pjax'=>'0','class'=>'favorites-form']) . Html::hiddenInput('productID', $id) . Html::submitButton('Добавить', ['class' => 'mps button add-to-favorites']) . Html::endForm();
if (!$result) {
return $form;
}
elseif (($result === 'Добавлено') && ($result_id == $id)) {
return '<p class="added"><a href="/site/category?name='.$cat.'">'.$result.'</a></p>';
}
elseif(($result === 'Ошибка') && ($result_id == $id)) {
return '<p class="non-added"><a href="/site/category?name='.$cat.'">'.$result. '</a></p>';
}
else {
return $form;
}
}
Смотреть конечно тошно, но кое-как свою работу выполняет.
Как сделать, чтобы паякс выполнялся только из вызванной ячейки я так и не нашёл. Если кто знает как это должно работать и выглядеть, будут бесконечно благодарен.