Ir para conteúdo
Fórum Script Brasil
  • 0

A matriz


Frank K Hosaka

Pergunta

Eu imaginei um cardápio com cinco produtos, o usuário escolhe o que e quanto ele quer. Assim que ele define a escolha, a rotina pega tudo o que foi definido pelo usuário e manda para o banco de dados.

Para resolver esse tipo de problema, eu usei uma matriz. E a solução ficou bacana, olha só:

<script>
var matriz = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]];
function calc(i,codprod,qt,custo,sub){
	qt=qt.replace(",",".");
	matriz[i][0]=codprod;
	matriz[i][1]=qt;
	matriz[i][2]=qt*custo;
	sub.innerHTML=matriz[i][2].toLocaleString('pt-br',{minimumFractionDigits:2,maximumFractionDigits:2});
	total=0;
	for (j=0;j<=4;j++) {total+=matriz[j][2];}
	total=total.toLocaleString('pt-br',{minimumFractionDigits:2,maximumFractionDigits:2});
	atotal.innerHTML=total;}
function executar() {
	inpg.name='exec';
	inpg.value=JSON.stringify(matriz);
	frmg.submit();}
</script>
<form id=frmg method=post><input type=hidden id=inpg></form>
<?php
if (isset($_POST['exec'])){ 
	$matriz=json_decode($_POST['exec']);
	$soma=0;
	for ($i=0;$i<=4;$i++) {
		$soma+=$matriz[$i][2];
		if ($matriz[$i][0]!=0){
			$codprod=$matriz[$i][0];
			$qt=$matriz[$i][1];
			echo "sql='insert into tbpedido (codprod,qt) values($codprod,$qt)'<br>";}}
	echo "Total do pedido $soma";
	exit;}
function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;}}
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select * from tbprod order by prod limit 5");
echo "<table><tr><th>Qtd<th>Produto<th>Preço<th>Subtotal";
for ($i=0;$i<=4;$i++) {
	$row=$query->fetch_assoc();
	$codprod=$row['codprod'];
	$prod=$row['prod'];
	$custo=$row['custo'];$custod=dec($custo);
	$id="inp".$i;
	$sub="as".$i;
	echo "<tr><td><input id=$id size=1 onchange=calc($i,$codprod,value,$custo,$sub)>"
	."<td>$prod<td align=right>$custod<td align=right><a id=$sub></a>";}
echo "<tr><td><td><input type=submit value=Executar onclick=executar()><td><td align=right><b><a id=atotal></a></table>";

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...