RedrawControl v handle funkcii ktorá používa $this->sendPayload()
- KristianSubweb
- Člen | 146
Pekný deň Vám prajem. Chcel by som sa opýtať neviem si dať radu, mám formulár kde vo vnútri v ňom mám snippet ktorý chcem prekresliť pri ajaxovom volaní na on change select boxu.
Toto je handle ktorý volám pri onchange selectboxu
public function handleGetAllStockItemPerDealer($dealerId){
if($this->isAjax()) {
$company = $this->user->getCompany();
//Prekreslím defaultne položky / položky ktoré sú pod min hodnotov skladu
$defaultStockOrderItem = $this->stockItemService->getAllMinStockItemsByDealerAndCompany($dealerId, $company);
$this->template->defaultStockItem = $defaultStockOrderItem;
$this->redrawControl("defaultItems");
//Vrátim object so všetkými položkami dodávatela
$allStockItemsPerDealer = $this->stockItemService->getByDealerIdAndCompany($dealerId, $company);
$selectData = [];
foreach ($allStockItemsPerDealer as $item) {
$selectData += [$item->getId() => $item->getName() . " - " . $item->getCode()];
}
//Prilepím do array nolovú hodnotu
$allStockItemsPerDealer = $selectData += ["0" => "-"];
$this->payload->data = $allStockItemsPerDealer;
$this->sendPayload();
}
}
Takto vyzerá ten snippet
<tbody>
{snippet defaultItems}
{ifset $defaultStockItem}
<tr n:foreach="$defaultStockItem as $defItem" class="order-stock-item-row">
<th scope="row">Tesniace gumičky</th>
<td>472141</td>
<td>15ks</td>
<td>
<input type="text" name="stockOrderItems[]" placeholder="Počet" class="form-control short">
<input type="hidden" name="stockItemsId[]" class="form-control short">
</td>
<td><input type="text" name="stockItemUnit[]" placeholder="Jednotka" class="form-control short"></td>
<td><input type="text" name="stockItemDescription[]" placeholder="Popis" class="form-control"></td>
<td class="text-center"><a href="#" class="btn btn-sm btn-danger remove"><span class="my-icon icon- trash"></span></a></td>
</tr>
{/ifset}
{/snippet}
</tbody>
Za Vaše odpoveďe dopredu ďakujem :)
- KristianSubweb
- Člen | 146
Už som nato prišiel :D problém bol v tom že som tam volal ten $this->sendPayload(); teraz som ho odstránil a už to ide tak ako má. :)