Bom dia. Estou precisando de uma ajuda. Quero obter algumas informações de um determinado produto, colocando-as com um combo box. Fiz um código usando o php e ajax. A parte, isolada de montagem do combo box funciona, porém quando eu chamo essa rotina da parte principal não acontece nada.
Explicações:
A função chama os dados do produto funciona.
Se por exemplo eu chamar a rotina "lote_combo.php", passando o parâmetro ela irá retornar o "select" da maneira que eu preciso
O problema é o seguinte, quando o usuário informar o código do produto e o campo perder o foco, quero que seja montado uma lista de opções para ele (lote do produto).
INDEX.PHP
<script type="text/javascript" src="ajax.js" ></script>
<script language="javascript" src="../js/jquery-1.6.4.min.js"></script>
<script language="javascript" src="../js/jquery.maskedinput.js"></script>
<link href="../css/intranet.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
jQuery(function($){
$("#mkdata_i").mask("99/99/9999");
});
</script>
<script language="javascript">
/* Consulta dados do produto */
var ajax = new sack();
function getConsulta() {
var id = null;
var a = document.activeElement.name;
if(document.getElementById('idProd')){
id = document.getElementById('idProd').value.replace(/[^0-9]/g,'');
}
if(id.length>=1){
/*
Especificando de qual arquivo irá obter as informações
consulta.php = script que faz a busca desejada
id = codigo do que sera procurado
campos = são os campos que iram receber as informacoes encontradas. Devem ser separados por "|" (pape)
OBS: o nome do campo deve ser IDENTICO ao campo na base de dados.
*/
ajax.requestFile = 'consulta.php?idproduto='+id+'&&campos=produto|apresentacao|marca';
ajax.onCompletion = showConsulta; // Especificando a função que será executada quando o arquivo for encontrado
ajax.runAJAX(); // Executa a função em ajax
}
}
function showConsulta() {
// função que retorna a resposta da consulta
var formObj = document.forms['rel_mov_produto'];
eval(ajax.response);
}
function initFormEvents(){
// função que dispara o inicio da consulta através do onBlur
document.getElementById('idProd').onblur = getConsulta;
document.getElementById('idProd').focus();
}
window.onload = initFormEvents;
/* --------------------------------------------------------------------------------------------------------- */
</script>
<div class="tit_rotina">Movimentação do produto</div>
<div class="form-container">
<?php
require_once("../funcao.php");
require_once("../funcaodata.php");
?>
<form action="" method="post" name="rel_mov_produto" id="rel_mov_produto" >
<fieldset>
<legend> Dados do produto </legend>
<div>
<label class="obrigatorio">Produto</label>
<input id="idProd" type="text" name="idProd" size="10" maxlength="6" onKeyPress="mascaraInteiro();" tabindex="1" value="" class="obrigatorio" required onChange="CarregaLote(this.value)"/>
<a href="javascript:abrir('consultaproduto.php','idProd');"><img src="../imagem/lupa.jpg" width="20" height="20" align="texttop" id="botao" /></a>
<input id="produto" type="text" name="produto" value="" size="70" <?php echo $hab_tf; ?> tabindex="1" />
<br>
<?php echo str_repeat(" ", 58); ?><input id="apresentacao" type="text" name="apresentacao" value="" size="60" <?php echo $hab_tf; ?> /> <br>
<?php echo str_repeat(" ", 58); ?><input id="marca" type="text" name="marca" value="" size="60" <?php echo $hab_tf; ?> />
</div>
<div>
<br/>
<div id="loteAjax">
<label for="lote" class="n_obrigatorio">Lote</label>
<select name="lote" id="lote" tabindex="2"><option value="0">--Selecione o produto--</option></select>
</div>
</div>
</fieldset>
</form>
<script language="javascript">
function CarregaLote(codProduto){
if(codProduto > 0){
//alert(codProduto);
var myAjax = new Ajax.Updater('loteAjax','lote_combo.php?codProduto='+codProduto,{
method : 'get',
}) ;
}
}
</script>
</div>
Pergunta
Douglas Pascini
Bom dia. Estou precisando de uma ajuda. Quero obter algumas informações de um determinado produto, colocando-as com um combo box. Fiz um código usando o php e ajax. A parte, isolada de montagem do combo box funciona, porém quando eu chamo essa rotina da parte principal não acontece nada.
Explicações:
O problema é o seguinte, quando o usuário informar o código do produto e o campo perder o foco, quero que seja montado uma lista de opções para ele (lote do produto).
INDEX.PHP
LOTE_COMBO.PHP
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.