azeredo 0 Denunciar post Postado Agosto 5, 2007 Pessoal.... aqui na empresa desenvolvemos um sistema para restaurante para palm(roda no browse em php).... bom soh que agora estou querendo colocar ajax para diminuir os reloads........ bom funcionar funciona... mas tem horas que ele se perde e nao insere o registro no bd..... vou colocar o codigo aqui... javascript do ajax... esta no cabecalho do arquivo pedido.php... var req; // The XML request object function inicia_ajax() { req = new ActiveXObject("Msxml2.XMLHTTP"); } function carrega(n) { inicia_ajax(); pesquisa = "&pesquisa ="+pedido.pesquisa.value; botao = "&botao ="+pedido.botao.value; mesa_ocupada = "&mesa_ocupada ="+pedido.mesa_ocupada.value; codigo_mesa = "&codigo_mesa ="+pedido.codigo_mesa.value; qtdade = "&qtdade ="+pedido.qtdade.value; codigo_produto = "&codigo_produto ="+pedido.codigo_produto.value; produto = "&produto ="+pedido.produto.value; gets = pesquisa+botao+mesa_ocupada+codigo_mesa+qtdade+codigo_produto+produto; pedido.produto.value="0"; pedido.codigo_produto.value=""; req.open("GET", "funcoes.php?n=teste"+gets,true); req.onreadystatechange=function() { if (req.readyState==4){ var texto=req.responseText //var conteudo=document.getElementById("principal") listagem.innerHTML=texto } } req.send(null) } e o teste.php ... <?php include("conexao.php"); $conn = new conexao(); $conn->conecta(); $codigo_mesa = $_GET["codigo_mesa_"]; $cod_mesa = $codigo_mesa; $mesa_ocupada = $_GET["mesa_ocupada_"]; $produto = $_GET['produto_']; $quantidade = $_GET['qtdade_']; $pesquisa = isset($_GET['pesquisa_']) ? $_GET['pesquisa_'] : 0; $produto_final = $produto; $sql = "insert into item(tipo, deletado, mesa, produto, qtde, valor, vendedor, impresso) values('P','N', $codigo_mesa, $produto_final, $quantidade, '3', 5, 'N')"; mysql_query($sql); ?><table width="100%" height="27" border="1" cellpadding="0" cellspacing="0" bordercolor="#000033" bgcolor="#003366"> <?php $sqlitem = " select distinct a.codigo, a.mesa, a.produto, a.qtde, a.valor, a.vendedor, a.impresso, b.descricao, b.tipoprodut"; $sqlitem .= " from item a "; $sqlitem .= " left join venprop b on b.codpro=a.produto"; $sqlitem .= " where a.mesa=$codigo_mesa order by a.codigo desc, a.impresso "; $resp = mysql_query($sqlitem); $i = 1; $total = 0; $xx = 0; while($resultitem=mysql_fetch_array($resp)) { $xx++; $total = ($resultitem[4] * $resultitem[3]) + $total; if ($i%2==0){ $color = '#FFFFFF'; } else { $color = '#E8F8FF'; } if($resultitem[6]=='N') { $sql_matprip = "select count(*) total "; $sql_matprip .= "from excprop "; $sql_matprip .= "where codpro = $resultitem[2]"; $sql_matprip = mysql_query($sql_matprip); $matprip = mysql_result($sql_matprip,0); $arquivo_php = $matprip > 0 ? 'matpri.php' : 'excecao.php'; $mostra_excecao = "<a href=\"$arquivo_php?codpro=$resultitem[2]&mesa=$cod_mesa&item=$resultitem[0]&mesa_ocupada=$mesa_ocupada&produto=".strtoupper(substr($resultitem[7],0,17))."\">".strtolower(substr($resultitem[7],0,17))."</a>"; } else { $mostra_excecao = strtolower(substr($resultitem[7],0,17)); } echo("<tr bgcolor='$color' class='style23'>"); echo("<td width='55%'><font face='verdana' size='4'><div align='left'>".' '.$mostra_excecao."</div></td>"); /*------------------------------------------------------------- if para aparecer o sinal de mais do lado da quantidade o sinal de +, ira aparecer qdo os itens nao foram para a mesa ainda. -------------------------------------------------------------*/ if($resultitem[6]=='N') { /************************************************ verifica se o tipo do produto é R para trabalhar com "pizza" ************************************************/ if(($resultitem[8]<>"R") || ($resultitem[3] > 1)) { echo("<td width='16%' class='header'><div align='right'>$resultitem[3] <a href='add_quantidade.php?codigo=$resultitem[0]&mesa=$codigo_mesa&mesa_ocupada=$mesa_ocupada&qtde=$resultitem[3]&pesquisa=$pesquisa'><img src='imagens/add.png' width='16' height='16'><a href='new_produto.php?codigo=$resultitem[0]&mesa=$codigo_mesa&mesa_ocupada=$mesa_ocupada&quantidade=$resultitem[3]'><img src='imagens/add_item.png' width='16' height='16'></a></div></td>"); } else { echo("<td width='16%' class='header'><div align='right'>"); echo("<select name='porcaopizza_".str_pad($resultitem[0], 3, "0", STR_PAD_LEFT)."' class='dividerlogs' onchange='qtPizza($resultitem[0],$resultitem[1],this.value,\"$mesa_ocupada\",1,\"$pesquisa\")'>"); if($resultitem[3]==1) { echo("<option value='100' selected>1</option>"); } else { echo("<option value='100'>1</option>"); } if($resultitem[3]==0.25) { echo("<option value='25' selected>0.25</option>"); } else { echo("<option value='25'>0.25</option>"); } if($resultitem[3]==0.5) { echo("<option value='50' selected>0.50</option>"); } else { echo("<option value='50'>0.50</option>"); } if($resultitem[3]==0.75) { echo("<option value='75' selected>0.75</option>"); } else { echo("<option value='75'>0.75</option>"); } echo("</select>"); echo("</div></td>"); } } else { echo("<td width='16%' class='header'><div align='right'>$resultitem[3]<a href='new_produto.php?codigo=$resultitem[0]&mesa=$codigo_mesa&mesa_ocupada=$mesa_ocupada&quantidade=$resultitem[3]'><img src='imagens/add_item.png' width='16' height='16'></div></td>"); } /*------------------------------------------------------------------- Este IF serve para mostrar a caixa de selecao, caso o item do pedido nao tenha sido impresso ainda. --------------------------------------------------------------------*/ $vlr_item = number_format($resultitem[4],2,',','.'); if($resultitem[6]=='N') { $vlr_item = number_format($resultitem[4],2,',','.'); echo("<td width='29%' class='header'><div align='right'>$vlr_item<a href='del_item_mesa.php?codigo=$resultitem[0]&mesa=$codigo_mesa&mesa_ocupada=$mesa_ocupada'><img src='imagens/delete.png' width='18' height='18'></a><span class='style22'></span></div></td>"); } else { echo("<td width='29%' class='header'><div align='right'>$vlr_item<img src='imagens/check.png' width='18' height='18'><span class='style22'></span></div></td>"); } echo("</tr>"); $i++; } ?> </table> como eu falei.. tem horas q funciona certinho... mas tem horas q ele simplesmente nao insere nada no banco.... principalmente se escolho um produto que jah escolhi antes..... alguem pode me ajudar?? vlw Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Agosto 5, 2007 azeredo, isso ta me parecendo problema com cache, de uma olhada se você limpando o cache do browser, ele grava normal.se ele gravar, da uma olhada como resolver problemas de cache com ajax, aqui no forum mesmo, na sessão javascript. lá o pessoal eh fera nisso =) Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Agosto 6, 2007 erra isso mesmo ScornInPC.....resolvido assim...link+"&qualquer="+Math.ceil(Math.random() * 100000)Valeu Compartilhar este post Link para o post Compartilhar em outros sites