Os componentes Arraste e solte têm integração especial com componentes de dados. Arraste os produtos usando os cabeçalhos para a área de soltar.
$render=explode(" ",$_POST["partial_render"]);
if($render[0]=="dropArea"){
$produto= explode(":",$_POST["selecionado_dragId"]);
$produto=$produto[1];
$rslt = "SELECT * FROM produtos WHERE id_produto="".$produto.""";
$rslt = $pdo->query($rslt);
$lnh = $rslt->fetch(PDO::FETCH_ASSOC);
$rslt = $pdo->prepare("INSERT INTO dataview_tmp (id_produto, codigo, produto, categoria, quantidade) VALUES(:id_produto,:codigo, :produto, :categoria, :quantidade)");
$rslt->bindParam(":id_produto",$lnh["id_produto"]);
$rslt->bindParam(":codigo",$lnh["codigo"]);
$rslt->bindParam(":produto",$lnh["produto"]);
$rslt->bindParam(":categoria",$lnh["categoria"]);
$rslt->bindParam(":quantidade",$lnh["quantidade"]);
$rslt->execute();
$array=array();
$rslt = "SELECT id_produto FROM produtos";
$rslt = $pdo->query($rslt);
while($lnh = $rslt->fetch(PDO::FETCH_ASSOC)){
array_push($array,$lnh["id_produto"]);
}
$rslt = "SELECT id_produto FROM dataview_tmp";
$rslt = $pdo->query($rslt);
while($lnh = $rslt->fetch(PDO::FETCH_ASSOC)){
$key = array_search($lnh["id_produto"], $array);
if($key!==false){
unset($array[$key]);
}
}
$resposta1="
<div id="availableProducts" class="ui-dataview ui-widget ui-dataview-grid">
<div class="ui-dataview-header ui-widget-header ui-helper-clearfix ui-corner-top">
<div class="ui-dataview-layout-options ui-selectonebutton ui-buttonset">
<div class="ui-button ui-button-icon-only ui-state-default ui-state-active" tabindex="0"><input id="availableProducts_grid" name="availableProducts" type="radio" value="grid" class="ui-helper-hidden-accessible" tabindex="-1" checked="checked" /><span class="ui-button-icon-left ui-icon ui-c pi pi-th-large"></span><span class="ui-button-text ui-c">ui-button</span></div>
</div>
</div>
<div id="availableProducts_content" class="ui-dataview-content ui-widget-content">
<div class="ui-dataview-row ui-g">";
$in_values = implode(",", $array);
$result = "SELECT * FROM produtos p INNER JOIN categorias c ON p.categoria=c.id_categoria WHERE id_produto IN (".$in_values.") LIMIT 10";
$result = $pdo->query($result);
while ($linha = $result->fetch(PDO::FETCH_ASSOC)){
$resposta1.="
<div class="ui-dataview-column ui-g-12 ui-md-4">
<div id="availableProducts:".$linha["id_produto"].":pnl" class="ui-panel ui-widget ui-widget-content ui-corner-all" style="text-align:center" data-widget="widget_availableProducts_0_pnl">
<div id="availableProducts:".$linha["id_produto"].":pnl_header" class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all"><span class="ui-panel-title">".$linha["produto"]."</span></div>
<div id="availableProducts:".$linha["id_produto"].":pnl_content" class="ui-panel-content ui-widget-content">
<table style="width:100%">
<tbody>
<tr>
<td><img src="/sistema/resource/demo/images/product/".$linha["foto"].".jpg" alt="" /></td>
</tr>
</tbody>
</table>
</div>
</div>
<script id="availableProducts:".$linha["id_produto"].":pnl_s" type="text/javascript">
DinarteCoelho.cw("Panel", "widget_availableProducts_0_pnl", { id: "availableProducts:0:pnl" });
</script>
<div id="availableProducts:".$linha["id_produto"].":drag" style="display: none;"></div>
<script id="availableProducts:".$linha["id_produto"].":drag_s" type="text/javascript">
DinarteCoelho.cw("Draggable", "widget_availableProducts_".$linha["id_produto"]."_drag", { id: "availableProducts:".$linha["id_produto"].":drag", target: "availableProducts:".$linha["id_produto"].":pnl", cursor: "crosshair", handle: ".ui\-panel\-titlebar", stack: ".ui\-panel", revert: "invalid" });
</script>
</div>";
}
$resposta1.=
"<div class="ui-dataview-column ui-g-12 ui-md-4"></div>
</div>
</div>
</div>
<script id="availableProducts_s" type="text/javascript">
DinarteCoelho.cw("DataView", "widget_availableProducts", { id: "availableProducts" });
</script>
";
$result = "SELECT * FROM dataview_tmp d INNER JOIN categorias c ON d.categoria=c.id_categoria";
$result = $pdo->query($result);
$resposta="
<div id="dropArea" class="ui-outputpanel ui-widget">
<div id="selectedProductsTable" class="ui-datatable ui-widget">
<div class="ui-datatable-tablewrapper">
<table role="grid">
<thead id="selectedProductsTable_head">
<tr role="row">
<th class="ui-state-default" role="columnheader" aria-label="Código" scope="col"><span class="ui-column-title">Código</span></th>
<th class="ui-state-default" role="columnheader" aria-label="Nome" scope="col"><span class="ui-column-title">Nome</span></th>
<th class="ui-state-default" role="columnheader" aria-label="Categoria" scope="col"><span class="ui-column-title">Categoria</span></th>
<th class="ui-state-default" role="columnheader" aria-label="Quantidade" scope="col"><span class="ui-column-title">Quantidade</span></th>
<th class="ui-state-default" role="columnheader" scope="col" style="width:32px"><span class="ui-column-title"></span></th>
</tr>
</thead>
<tbody id="selectedProductsTable_data" class="ui-datatable-data ui-widget-content">";
while ($linha = $result->fetch(PDO::FETCH_ASSOC)){
$resposta.="
<tr data-ri="".$linha["id_produto"]."" class="ui-widget-content ui-datatable-even" role="row">
<td role="gridcell" class="">".$linha["codigo"]."</td>
<td role="gridcell" class="">".$linha["produto"]."</td>
<td role="gridcell" class="">".$linha["categoria"]."</td>
<td role="gridcell" class="">".$linha["quantidade"]."</td>
<td role="gridcell" style="width:32px" class="">
<button id="BtnVer:".$linha["id_produto"]."" name="BtnVer:".$linha["id_produto"]."" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" onclick="DinarteCoelho.ab({s:"".$linha["id_produto"]."",f:"productForm",u:"display",onco:function(xhr,status,args,data){DC(\"productDialog\").show();}});return false;" type="submit"><span class="ui-button-icon-left ui-icon ui-c pi pi-search"></span><span class="ui-button-text ui-c">ui-button</span></button>
<script id="BtnVer:".$linha["id_produto"]."_s" type="text/javascript">
DinarteCoelho.cw("CommandButton", "widget_BtnVer_".$linha["id_produto"]."", { id: "BtnVer:".$linha["id_produto"]."" });
</script>
</td>
</tr>";
}
$resposta.="
</tbody>
</table>
</div>
</div>
<script id="selectedProductsTable_s" type="text/javascript">
DinarteCoelho.cw("DataTable", "widget_selectedProductsTable", { id: "selectedProductsTable", groupColumnIndexes: [], disableContextMenuIfEmpty: false });
</script>
</div>
";
}
if($_POST["partial_render"]=="display"){
$result = "SELECT * FROM produtos p INNER JOIN categorias c ON p.categoria=c.id_categoria INNER JOIN estoque e ON p.estoque=e.id_estoque WHERE id_produto = "".$_POST["source"]."" ";
$result = $pdo->query($result);
$linha = $result->fetch(PDO::FETCH_ASSOC);
$resposta="
<div id="display" class="ui-outputpanel ui-widget">
<div class="product">
<div class="product-grid-item card" style="margin-bottom: 0">
<div class="product-grid-item-top">
<div>
<i class="pi pi-tag product-category-icon"></i>
<span class="product-category">".$linha["categoria"]."</span>
</div>
<span class="product-badge status-lowstock">".$linha["estoque"]."</span>
</div>
<div class="product-grid-item-content"><img src="/sistema/resource/demo/images/product/".$linha["foto"].".jpg" alt="" />
<div class="product-name">".$linha["produto"]."</div>
<div class="product-description">Descrição do Produto</div>
<div id="votos" class="ui-rating">";
for ($i = 1; $i <= 5; $i++) { $resposta.="<div class="ui-rating-star"; if($i<$linha["avaliacoes"]){ $resposta.=" ui-rating-star-on";} $resposta.=""><a></a></div>"; }
$resposta.="<input id="votos_input" name="votos_input" type="hidden" autocomplete="off" aria-hidden="true" value="".$linha["avaliacoes"]."" /></div>
<script id="votos_s" type="text/javascript">
DinarteCoelho.cw("Rating", "widget_votos", {
id: "votos",
readonly: true
});
</script>
</div>
<div class="product-grid-item-bottom"><span class="product-price">R$ ".$linha["preco"].",00</span>
<button id="BtnCarrinho" name="BtnCarrinho" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left" onclick="DinarteCoelho.ab({s:"BtnCarrinho",f:"productForm"});return false;" type="submit"><span class="ui-button-icon-left ui-icon ui-c pi pi-shopping-cart"></span><span class="ui-button-text ui-c">Adicionar ao Carrinho</span></button>
<script id="BtnCarrinho_s" type="text/javascript">
DinarteCoelho.cw("CommandButton", "widget_BtnCarrinho", { id: "BtnCarrinho" });
</script>
</div>
</div>
</div>
</div>
";
}
dc.cw("Panel", "widget_availableProducts_pnl", {
id: "availableProducts:pnl"
});
dc.cw("Draggable", "widget_availableProducts_drag", {
id: "availableProducts:drag"
, target: "availableProducts:pnl"
, cursor: "crosshair"
, handle: ".ui\-panel\-titlebar"
, stack: ".ui\-panel"
, revert: "invalid"
});
dc.cw("DataView", "widget_availableProducts", {
id: "availableProducts"
});
dc.cw("Fieldset", "widget_selectedProducts", {
id: "selectedProducts"
});
dc.cw("Droppable", "widget_selecionado", {
id: "selecionado"
, target: "selectedProducts"
, activeClass: "ui\-state\-highlight"
, tolerance: "pointer"
, onDrop: handleDrop
, behaviors: {
drop: function (ext, event) {
dc.ab({
s: "selecionado"
, e: "drop"
, f: "productForm"
, p: "selecionado"
, u: "dropArea availableProducts"
}, ext);
}
}
});
dc.cw("Dialog", "productDialog", {
id: "detalhe"
, draggable: false
, resizable: false
, modal: true
, showEffect: "fade"
, hideEffect: "fade"
});