Максим Федоров он перезагрузит контейнер, а данные он где возьмет новые ? если reload обращается к контроллеру еще раз (от куда рендериться данное представление) , то надо туда передать данные из выпадающего списка ... Можно этот момент не много по подробнее ....
Максим Тимофеев: Уже сделал так, создал еще один метод в модели, который буду вызывать в detailview. Но он мне вместо картинок выдает код, при чем вообще не понятный, как обрезает его фиг знает .
Метод
public function getImage()
{
$str = '';
foreach ($this->file as $img) {
$str = $str + ' ';
}
return $str;
}
DetailView
[
'label' => 'Скрин',
'value' => $model->image,
],
Результат
0/uploads/error_image.png">
Александр N++ получается они хранятся по мимо базы еще и в этой папке или для чего она ?
В таком случае просто вылазит ошибка, скрин которой я предоставил в топике
Денис: дак не работает Ваш пример, я ж написал.
Делаю вот так и ничего не выводит
$(function() {
sumTypes = 0;
$('.inp').each(function () {
alert('1');
});
$('.summ-types').text(sumTypes);
});
А так показывает 1
$(function() {
sumTypes = 0; alert('1');
$('.inp').each(function () {
sumTypes += parseInt($(this).val());
});
$('.summ-types').text(sumTypes);
});
Значит он не может так же обратиться к динам добавленным элементам из просто функции. И кстати я делаю это НЕ в $(document).ready(function(){ ... }
Пробовал и в нем, результат тот же.
Денис: c focus() и focusout() ничего не вышло ((( т.к. снова не видит динам добавленные поля.
Попробовал $(function(){...} просто добавляет 0, не суммирует
Денис: изначально цель была создать отчет : на форме динамически добавляются поля ввода (каждое поле отвечает за определенный вид расхода). И чтобы подсчитать общую сумму "на лету" я использовал:
$('body').on('focusout', '.inp', function () {
sumTypes = 0;
$('.inp').each(function () {
sumTypes += parseInt($(this).val());
});
$('.summ-types').text(sumTypes);
});
где каждый новый динамически добавленный элемент имеет класс inp
Сейчас же возникла необходимость делать изменение отчета, при загрузке страницы изменения из БД берутся данные о всех расходах и динамически добавляются на страницу, дак вот в таком случае мне нужно без focusout сразу подсчитать сумму всех этих расходов, можно конечно подсчитать это на сервере, но это лишний параметр как для изменения так и для создания, потому что используется один и тот же файл представления.
Есть еще вариант, этим же jquery сделать фокус и убрать его, тогда должно сработать событие focusout и посчитается сумма как при добавлении, пойду попробую, только что эта мысль пришла в голову.
Денис в первом случае я так и сделал и все работает, а во втором случае если делаю $(window).on('load', '.inp', function() {
sumTypes = 0;
$('.inp').each(function () {
sumTypes += parseInt($(this).val());
});
$('.summ-types').text(sumTypes);
});
ничего не выходит
Михаил: Если вообще кода, то '.inp' добавляется на страницу динамически. При создании полностью создается все, при редактировании изменяется. '.inp' изначально нет на странице, в любом случае попадает из jquery.
Кирилл Арутюнов: С формы уходит все что надо, а вот сохранение так и не проходит :(
Разобрался, почему то такая конструкция создавала на 1-у меньше модель, чем нужно:
$infoModels = [new Infocosttc()];
$count = count(Yii::$app->request->post('Infocosttc', []));
for ($i = 1; $i < $count; $i++) {
$infoModels[] = new Infocosttc();
}
сделал $i < $count+1 и все заработало