[RESOLVIDO] erro com php + mysql + ajax...
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
Discussão (2)
Carregando comentários...