Ir para conteúdo
Fórum Script Brasil
  • 0

Douglas Pascini

Pergunta

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>&nbsp;Dados do produto&nbsp;</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("&nbsp;", 58); ?><input id="apresentacao" type="text" name="apresentacao" value="" size="60" <?php echo $hab_tf; ?> />			<br>
			<?php echo str_repeat("&nbsp;", 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>

LOTE_COMBO.PHP

<?php
include("../funcao.php");
conecta();

$codProduto = $_GET['codProduto'];

echo '<script>alert('.$codProduto.');</script>';

$sql = "select lote from lote where produto = '$codProduto' order by lote";
$res = exec_sql($sql);
$num_cidades = mysql_num_rows($res);

?>
<select name="lote" id="lote" tabindex="2">
	<?php for($j=0;$j<$num_cidades;$j++){
		$dados = mysql_fetch_array($res);
	?>
	<option value="<?php echo alltrim($dados['lote']); ?>"><?php echo alltrim($dados['lote']);?></option>
	<?php }?>
</select>
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Ola Leonardo.

Obrigado pela ajuda, contudo seu um programador novato em PHP e Ajax, ainda estou aprendendo.

Gostaria de te fazer somente mais uma pergunta. "Mudar onde?". É serio, não tenho muitos conhecimentos e estou migrando uma rotina de uma sistema desktop (Visual FoxPro) para PHP, e parei nesse problema.

Pode ser um pouco mais especifico.

Desde já agradeço a sua ajuda. (vou ficar tentando também).

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...