-
Conteúdo Similar
-
Por ment0r
Boa tarde a todos.
Eu estou aproveitando a quarentena pra estudar e em aprofundar mais em JQuery. Comecei então um protótipo de PDV pra por em prática o aprendizado.
Anexei uma imagem da tela. Basicamente é isso: o usuário digita um código e ao sair (blur), preenche o nome do produto e valor; quando o usuário clica em quantidade (keyup) faz o cálculo de valor unitário X qtde e exibe no campo total item. Quando o campo total item perde o foco (blur), os dados vão para o canto superior esquendo (conforme imagem) e ficam como linha daquela tabela.
Só que quando eu faço uma nova consulta, ele apaga o registro anterior. O que eu queria é que quando eu pesquisasse um novo produto e fizesse o cálculo, armazenasse o segundo produto na linha de baixo e não apagasse o anterior.
Esse trecho busca o valor e exibe nos campos - tudo ok aqui.
// Pega o valor digitado no campo código // Passa como parametro para função buscaProduto codigo.blur(function(){ if (codigo.val() != '') { buscaProduto(codigo.val()); } else { alert('Por favor, digite algum valor no campo código'); codigo.focus(); } }); // Função responsável por buscar os dados do produto function buscaProduto(codigo){ $.ajax({ url : "busca_produto.php", type : 'post', cache: false, // não mantém os dados em cache dataType: 'json', // não é necessário passar quando é html data : { cod : codigo }, success: function(msg){ produto.val(msg.NOME); valor.val(msg.PRECO); quantidade.focus(); } }) } Esse trecho adiciona a linha dos dados na tabela do canto superior esquerdo.
// Executa a função preencheDados quando o input #total_item perde o foco total_item.blur(function(){ preencheDados(codigo.val(), produto.val(), quantidade.val(), valor.val(), total_item.val()) }) // Preeche os dados calculados na tela function preencheDados(codigow, produtow, quantidadew, valorw, total_itemw){ th = '<th>1</th>'; th += '<th>'+codigow+'</th>'; th += '<th>'+produtow+'</th>'; th += '<th>'+quantidadew+'</th>'; th += '<th>'+valorw+'</th>'; th += '<th>'+total_itemw+'</th>'; destino.html(th); descricao.val(produtow); valor_down.val(valorw); quantidade_down.val(quantidadew); total_item_down.val(total_itemw); sub_total.val('Calcular...'); codigo.val('').focus(); produto.val(''); quantidade.val(''); valor.val(''); total_item.val(''); } Se alguém puder me dar uma dica de como adicionar essa segunda linha (th) eu agradeço muito.
Um abraço a todos.
-
Por joao.felipe
Pessoal, boa noite,
estou tentando fazer um checkbox colorir multiplas celulas de uma tabela. Ao selecionar o checkbox e clicar no onclick botao(filtrar) ou somente selecionando o checkbox, eu preciso colorir a celula de verde através de alguma propriedade. Ex: <td ID="A1" color"green" ></td> da
<!DOCTYPE html>
<html>
<body>
<script>
function obterMarcados()
{
var numeros = 0;
var listaMarcados = document.getElementsByName("checkbox1");
if (listaMarcados.length > 0)
{
for (loop = 0; loop < listaMarcados.length; loop++)
{
let item = listaMarcados[loop];
console.log(item.checked)
if (item.type == "checkbox" && item.checked)
{
numeros++;
alert(item.value);
alert(listaMarcados.length);
}
}
if (numeros == 0)
{
alert("Nenhum CheckBox foi Marcado");
}
}
else
{
alert("Nao existe nenhum CheckBox com esse nome(name)");
}
}
</script>
<form>
<table width="" border="1" cellspacing="10" cellpadding="4">
<tr align="center"> <td>--</td> <td> -- <br></td> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>E</td> <td>F</td> <td>G</td> <td>H</td> <td>I</td> <td>J</td> <td>K</td> <td>L</td> <td>M</td> <td>N</td> <td>O</td> <td>P</td> <td>Q</td> <td>R</td> <td>S</td> <td>T</td> <td>U</td> <td>V</td> <td>X</td> </tr>
<tr align="center"> <td>--</td> <td> <input type="button" name="btn" value="Verificar Marcados" onclick="obterMarcados()"> <br></td> <td COLSPAN="12" align="center">RAIZES 8</td> <td COLSPAN="4" align="center">RAIZES 7</td> <td COLSPAN="2" align="center">RAIZES 6</td> <td td COLSPAN="3" align="center">VEREDAS 2</td> <td>CARANDÁ</td> <td>PALMAS</td> </tr>
<tr align="center"> <td>--</td> <td> -- <br></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td>12</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>3</td> <td>1</td> <td>1</td> </tr>
<tr align="center"> <td>01</td> <td align="left"> <input type="checkbox" id = "3DS Max" name="checkbox1" value="3DS Max" > 3DS Max <br></td> <td bgcolor="green" id="A1">A1 </td> <td id="B1">B1</td> <td>C1</td> <td>D1</td> <td>E1</td> <td>F1</td> <td>G1</td> <td>H1</td> <td>I1</td> <td>J1</td> <td>K1</td> <td>L1</td> <td>M1</td> <td>N1</td> <td>O1</td> <td>P1</td> <td>Q1</td> <td>R1</td> <td>S1</td> <td>T1</td> <td>U1</td> <td>V1</td> <td>X1</td> </tr>
<tr align="center"> <td>02</td> <td align="left"> <input type="checkbox" id = "Adobe + Audacity" name="checkbox1" value="Adobe + Audacity" > Adobe + Audacity <br></td> <td bgcolor="white" id="A2">A2 </td> <td>B2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>
<tr align="center"> <td>03</td> <td align="left"> <input type="checkbox" id = "Anaconda Python 5" name="checkbox1" value="Anaconda Python 5" > Anaconda Python 5 <br></td> <td bgcolor="white" id="A3">A3 </td> <td>B3</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>
</table>
</form>
</body>
</html>
-
Por joao.felipe
Pessoal, boa noite,
estou tentando fazer um checkbox colorir uma celula de uma tabela. ao selecionar o checkbox e clicar no botao ou até mesmo somente selecionando evento deve filtrar o TD através do ID e colorir essa célula. estou um pouco perdido pois sou iniciante na programação. como posso fazer esse processo? Segue codigo fonte completo
<!DOCTYPE html>
<html>
<body>
<script>
function obterMarcados()
{
var numeros = 0;
var listaMarcados = document.getElementsByName("checkbox1");
if (listaMarcados.length > 0)
{
for (loop = 0; loop < listaMarcados.length; loop++)
{
let item = listaMarcados[loop];
console.log(item.checked)
if (item.type == "checkbox" && item.checked)
{
numeros++;
alert(item.value);
alert(listaMarcados.length);
}
}
if (numeros == 0)
{
alert("Nenhum CheckBox foi Marcado");
}
}
else
{
alert("Nao existe nenhum CheckBox com esse nome(name)");
}
}
</script>
<form>
<table width="" border="1" cellspacing="10" cellpadding="4">
<tr align="center"> <td>--</td> <td> -- <br></td> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>E</td> <td>F</td> <td>G</td> <td>H</td> <td>I</td> <td>J</td> <td>K</td> <td>L</td> <td>M</td> <td>N</td> <td>O</td> <td>P</td> <td>Q</td> <td>R</td> <td>S</td> <td>T</td> <td>U</td> <td>V</td> <td>X</td> </tr>
<tr align="center"> <td>--</td> <td> <input type="button" name="btn" value="Verificar Marcados" onclick="obterMarcados()"> <br></td> <td COLSPAN="12" align="center">RAIZES 8</td> <td COLSPAN="4" align="center">RAIZES 7</td> <td COLSPAN="2" align="center">RAIZES 6</td> <td td COLSPAN="3" align="center">VEREDAS 2</td> <td>CARANDÁ</td> <td>PALMAS</td> </tr>
<tr align="center"> <td>--</td> <td> -- <br></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td>12</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>3</td> <td>1</td> <td>1</td> </tr>
<tr align="center"> <td>01</td> <td align="left"> <input type="checkbox" id = "3DS Max" name="checkbox1" value="3DS Max" > 3DS Max <br></td> <td bgcolor="green" id="A1">A1 </td> <td id="B1">B1</td> <td>C1</td> <td>D1</td> <td>E1</td> <td>F1</td> <td>G1</td> <td>H1</td> <td>I1</td> <td>J1</td> <td>K1</td> <td>L1</td> <td>M1</td> <td>N1</td> <td>O1</td> <td>P1</td> <td>Q1</td> <td>R1</td> <td>S1</td> <td>T1</td> <td>U1</td> <td>V1</td> <td>X1</td> </tr>
<tr align="center"> <td>02</td> <td align="left"> <input type="checkbox" id = "Adobe + Audacity" name="checkbox1" value="Adobe + Audacity" > Adobe + Audacity <br></td> <td bgcolor="white" id="A2">A2 </td> <td>B2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>
<tr align="center"> <td>03</td> <td align="left"> <input type="checkbox" id = "Anaconda Python 5" name="checkbox1" value="Anaconda Python 5" > Anaconda Python 5 <br></td> <td bgcolor="white" id="A3">A3 </td> <td>B3</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>
</table>
</form>
</body>
</html>
-
Por FabricioVale
Bom dia Pessoal. Ver se alguém pode me ajudar ou me dar uma luz com os problemas do Updatepanel referente a seguinte situação:
Quando o Triggers está definido com a linha abaixo do controle rpt dessa forma o devido botão chamado com o ID="btndownload" que esta dentro do RPT consegue efetuar o download de um arquivo e outro botão cujo ID="btnimg" não consegue abrir uma pagina.
<Triggers> <asp:PostBackTrigger ControlID="rpt"/> </Triggers>
Quando a linha abaixo do Triggers do controle rpt está definida dessa forma um botão chamado com o ID="btndownload" que esta dentro do RPT não consegue efetuar o download de um arquivo e outro botão cujo ID="btnimg" consegue abrir uma pagina.
<Triggers> <asp:AsyncPostBackTrigger ControlID="rpt"/> </Triggers>
Pergunta: como contornar esse problema?
Em um momento eu quero abrir uma pagina e no outro momento eu quero efetuar o download, mas só funciona um ou outro.
Segue o código abaixo da pagina
Pagina ASP.NET
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel" DisplayAfter="50"> <ProgressTemplate> <div class="divfluante"> <asp:Image ID="spinner" ImageUrl="../img/carregandopagina.gif" runat="server" AlternateText="Carregando" /> </div> </ProgressTemplate> </asp:UpdateProgress> <br /> <asp:UpdatePanel ID="UpdatePanel" runat="server"> <ContentTemplate> <asp:Repeater ID="rpt" runat="server" OnItemCommand="rpt_ItemComman"> <HeaderTemplate> <asp:Label ID="Label69" runat="server" Font-Size="13" ForeColor="Black" Text="Relatorio de Exclusão"></asp:Label> </HeaderTemplate> <ItemTemplate> <div style="font-family: Calibri; font-size: 14px; font-weight: normal; font-style: normal; color: #000000"> <div id="Linhagrossa"> </div> <br /> OS FICHA <asp:Label ID="lblimg" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Qtd")%>' Visible="true"></asp:Label> <asp:Label ID="lblmsgimg" runat="server" Font-Names="Calibri" Font-Size="11pt" Text=" IMAGEN(S)" Visible="true"></asp:Label> <br /> <asp:ImageButton ID="btndownload" runat="server" CausesValidation="False" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"CodOs")%>' CommandName="Download" Height="32px" ImageUrl="~/img/btndownload.png" Text="Baixar" Width="32px" /> <asp:ImageButton ID="btnficha" runat="server" CausesValidation="False" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"CodOs")%>' CommandName="Downloadficha" Height="32px" ImageUrl="~/img/btndownload.png" Text="Baixar" Width="32px" /> <asp:ImageButton ID="btnimg" runat="server" CausesValidation="False" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"CodOs")%>' CommandName="Imagens" Height="32px" ImageUrl="~/img/btnimg.png" Text="Baixar" Visible="true" Width="32px" /> <br /> <asp:Label ID="Label70" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="OS:"></asp:Label> <asp:Label ID="lblOs" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"CodOs")%>'></asp:Label> <br /> <asp:Label ID="Label2" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Funcionário:"></asp:Label> <asp:Label ID="Label4" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Nome2")%>'></asp:Label> <br /> <asp:Label ID="Label9" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Solicitante:"></asp:Label> <asp:Label ID="Label10" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Solicitanteficha")%>'></asp:Label> <br /> <asp:Label ID="Label11" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Deslocamento-Horas:"></asp:Label> <asp:Label ID="Label12" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Horadesc")%>'></asp:Label> <br /> <div id="Linhafina"> </div> <asp:Label ID="Label71" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem, "CodeNome")%>'></asp:Label> <br /> <asp:Label ID="Label14" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Defeito:"></asp:Label> <br /> <asp:Label ID="Label15" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Defeito")%>'></asp:Label> <br /> <br /> <asp:Label ID="Label13" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Procedimento-Telefônico:"></asp:Label> <br /> <asp:Label ID="Label72" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Procedimento")%>'></asp:Label> <br /> <br /> <asp:Label ID="Label16" runat="server" Font-Names="Calibri" Font-Size="11pt" Text="Procedimento-Presencial:"></asp:Label> <br /> <asp:Label ID="Label17" runat="server" Font-Names="Calibri" Font-Size="11pt" Text='<%# DataBinder.Eval(Container.DataItem,"Procedimento2")%>'></asp:Label> <br /> <br /> <br /> </div> </ItemTemplate> </asp:Repeater> <br /> <br /> </ContentTemplate> <Triggers> <asp:PostBackTrigger ControlID="rpt"/> </Triggers> </asp:UpdatePanel> </div> </form> </body> </html>
Codigo c# protected void rpt_ItemComman(object source, RepeaterCommandEventArgs e) { try { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { switch (e.CommandName) { case "Download": { string Codos = ((Label)e.Item.FindControl("lblOs")).Text; objfichatel = null; objfichatelDAO = null; objfichatel = new Cadfichatel(); objfichatelDAO = new CadfichatelDAO(); string sql = " where f.CodOs = '" + Codos + "' "; objfichatel = objfichatelDAO.Obterfichaos(sql); if (objfichatel.DataeHorafimOs != null) { if (objfichatel.DataeHorafimOs != "") { Gerarficha objgerarficha = new Gerarficha(); objgerarficha.gerarpdfos(Codos); string caminhofichaos = @"C:\Arquivos\OS\"; string os = Codos + ".pdf"; if (File.Exists(caminhofichaos + Codos + ".pdf")) { Response.Clear(); //'Adiciona um cabeçalho que especifica o nome default para a caixa de diálogos Salvar Como... Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + os); //'Adiciona ao cabeçalho o tamanho do arquivo para que o browser possa exibir o progresso do download Response.Flush(); Response.WriteFile(caminhofichaos + os); Response.Flush(); // Response.Redirect("/gerente/fichaatend.aspx",true); } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "", "Mensagem('ORDEM DE SERVIÇO NÃO PRESENCIAL. FAVOR GERAR A FICHA TÉCNICA!');", true); } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "", "Mensagem('ORDEM DE SERVIÇO NÃO PRESENCIAL. FAVOR GERAR A FICHA TÉCNICA!');", true); } } break; case "Downloadficha": { string Codos = ((Label)e.Item.FindControl("lblOs")).Text; Gerarficha objgerarficha = new Gerarficha(); objgerarficha.gerarpdf(Codos); string caminhofichaos = @"C:\Arquivos\FICHAOS\"; string ficha = Codos + ".pdf"; if (File.Exists(caminhofichaos + Codos + ".pdf")) { Response.Clear(); //'Adiciona um cabeçalho que especifica o nome default para a caixa de diálogos Salvar Como... Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + ficha); //'Adiciona ao cabeçalho o tamanho do arquivo para que o browser possa exibir o progresso do download Response.Flush(); Response.WriteFile(caminhofichaos + ficha); Response.Flush(); //Response.Redirect(Page.Request.Path); } } break; case "Imagens": { string Qtd = ((Label)e.Item.FindControl("lblimg")).Text; if (Qtd != "0") { objfichatel = null; objfichatelDAO = null; objfichatel = new Cadfichatel(); objfichatelDAO = new CadfichatelDAO(); string sql = " where f.CodOs = '" + ((ImageButton)e.Item.FindControl("btnimg")).CommandArgument + "' "; objfichatel = objfichatelDAO.Obterfichaos(sql); if (objfichatel != null) { if (objfichatel.CodOS != 0) { string var = objfichatel.CodOS + "-" + objfichatel.ClienteRaz + "-" + objfichatel.Aparficha; btnexpandir_img_click(var); } } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "", "Mensagem('ORDEM DE SERVIÇO SEM ANEXO!');", true); } } break; } } } catch (Exception ex) { lblmsg.Text = ex.Message.ToString(); } } protected void btnexpandir_img_click(string variavel) { Session["codosimg"] = variavel; StringBuilder sb = new StringBuilder(); sb.Append("window.open('relfichaexpanimg.aspx','NewWindow','left=50, top=10, status=yes, resizable=yes, scrollbars= yes, toolbar= no,location= no, menubar= no')"); ScriptManager.RegisterStartupScript(Page, typeof(Page), "dialog", sb.ToString(), true); }
-
Por FabricioVale
Bom dia pessoal.
Pergunta: Como faço a seguinte situação abaixo:
Tabela Pai. Chave primaria Codos
Id| Cliente| Codos | Numserie
1 |'A' | 36879 | 2206
2 |'B' | 36809 | 2206
3 |'C' | 30991 | 2206
4 |'D' | 36165 | 2206
5 |'E' | 36143 | 2206
6 |'F' | 31220 | 2206
7 |'G' | 31203 | 2206
8 |'H' | 27703 | 2206
9 | 'I' | 31298 | 2206
Tabela filho. Chave Codos Tabela filho é que efetua a relação com a chave Codos primaria do cliente
Id| Arquivo |CodOS
1 | 'errocelular.png' |36879
4 | '150591749950611.jpg'|36809
5 | '20171006_161942.jpg'|30991
6 | '20171006_161918.jpg'|30991
7 | '20171020_110116.jpg'|31220
8 | '20171020_114319.jpg'|31220
9 | '20171025_172339.jpg'|31298
10| '20171025_173243.jpg'|31298
11| '20171025_175032.jpg'|31298
12| '20171025_175506.jpg'|31298
Buscar registros repetidos são fácies e dessa forma abaixo será possível?
Como faço esse Resultado funcionar no Mysql?
Cliente | Codos | Numserie | Qtdregistros
'A' | 36879 | 2206 | 1
'B' | 36809 | 2206 | 1
'C' | 30991 | 2206 | 2
'D' | 36165 | 2206 | 0
'E' | 36143 | 2206 | 0
'F' | 31220 | 2206 | 2
'G' | 31203 | 2206 | 0
'H' | 27703 | 2206 | 0
'I' | 31298 | 2206 | 4
Obrigado pessoal. Peço uma ideia ou uma luz a alguém, por favor?
-