Boa noite.
Fiz um script com uma sugestão daqui do próprio site, mas agora estou com outro problema, hehehe.
Gostaria de fazer uma inserção no banco com o seguinte código:
Na página principal, tenho o chamado:
function adicionar(idprod, quant){
var mesa = document.getElementById("slt_mesa").value;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
alert(idprod+ " " + quant + " " + mesa + " adiciona.php?idprod="+idprod+"&quant="+quant+"&idmesa="+mesa); //PARA TESTE
xmlhttp.open("GET","adiciona.php?idprod="+idprod+"&quant="+quant+"&idmesa="+mesa);
xmlhttp.send();
}
Na página que ele chama, a adiciona.php, pelo alert eu consigo ver os resultados corretos (exemplo de saída no alert: 1, 1, 1 adiciona.php?idprod=1&quant=1&idmesa=1)
Porém, na página adiciona.php ele não faz a inserção.
Tenho o seguinte código nela:
<?php
$idprod=$_GET["idprod"];
$quant=$_GET["quant"];
$idmesa=$_GET["idmesa"];
include "conecta_db.php";
$comando = mysql_query("select max(ID_PEDIDO)+1 id_pedido from pedido");
$idpedido = mysql_fetch_array($comando['id_pedido']);
$comando = "INSERT INTO MESA (ID_PEDIDO, STATUS, MESA) VALUES ($idpedido, 1, $idmesa)";
$result = mysql_query($comando) or die(mysql_error());
$comando = "INSERT INTO ITEM_PEDIDO (ID_PEDIDO, ID_PRODUTO, QUANTIDADE) VALUES($idpedido, $idprod, $quant)";
$result = mysql_query($comando) or die(mysql_error());
mysql_close($con);
?>
UM EXEMPLO QUE USEI QUE FUNCIONA PARA PEGAR O ID DA COMBO É O SEGUINTE:
Na página principal:
function getCategoria(str)
{
if (str==0)
{
document.getElementById("produtos").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("produtos").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getcategoria.php?cat="+str);
xmlhttp.send();
}
E na página chamada getcategoria.php tem o seguinte código:
<?php
$q=$_GET["cat"];
include "conecta_db.php";
$sql="SELECT * FROM categoria WHERE id_categoria = '".$q."'";
$result = mysql_query($sql);
$categoria = mysql_fetch_assoc($result);
echo "<h4>-" . $categoria['DESCRICAO_CATEGORIA'] . "-</h4>";
?>
<div class="clear"></div>
<table>
<?php
//linhas = número de linhas da tabela Produtos pela categoria selecionada
$linha = 1;
$query = mysql_query("select * from produtos where id_categoria = '".$q."'");
while($produto = mysql_fetch_array($query)){
if($linha%2==0){
$classe='linha_PAR';
}
else{
$classe='linha_IMPAR';
}
$linha++;
?>
<tr class= "<?php echo $classe; ?>" >
<td>
<div class="botao"><input type="submit" value="Adicionar" id="adicionar<?php echo $produto['ID_PRODUTO']; ?>" onclick="adicionar(<?php echo $produto['ID_PRODUTO'] ?>, document.getElementById('quant<?php echo $produto['ID_PRODUTO'] ?>').value)"/></div>
</td>
<td>
<div class="quantidade"><input class="quant" maxlength="3" size="1" value="1" name="quant<?php echo $produto['ID_PRODUTO']; ?>" id="quant<?php echo $produto['ID_PRODUTO']; ?>" /></div>
</td>
<td class="terceira">
<div class="produto"><?php echo $produto['DESCRICAO_PRODUTO']; ?></div>
</td>
</tr>
<?php
}//fecha while
?>
</table>
<?php
mysql_close($con);
?>
Este código inclusive cria o botão adicionar corretamente, pois no alert lá em cima eu obtenho os parâmetros corretos.
Abaixo tem a tela de como fica a página. Os botões adicionar são criados dinamicamente ao lado de cada linha para inserir aqueles produtos, penas coloquei a imagem para facilitar entendimento.
Obrigado pela ajuda e desculpe pelo tamanho do código que pode parecer complicado.
[RESOLVIDO]
O principal problema do meu form era que os botões não eram button, eram submit e isso dava pau. Mas valeu aí. Obrigado pela atenção