Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webmind

Preenchimento campos AJAX/PHP

Recommended Posts

Boa tarde, gostava de saber se existe alguma maneira de preencher inputs de texto automaticamente apartir do ajax, o qual leva uma variavel para uma p+agina de consulta php+mysql e retorn o resultado preenchendo as caixas com os valores restantes.

 

Exemplo você coloca o codigo do produto, ae ele manda pelo ajax o codigo e faz a consulta no bd na pagina consulta.php, depois retorna o nome do produto e o preco ate ae tudo bem mas eu nao quero que faça

 

echo "<input>". Eu fiz esse script, da seguinte maneira ele faz um echo do nome e preco em que contem um & entre estes depois na pagina do ajax pego o indexof("&") e pego o nome separado do preco e depois preenche os campos, mas acho que essa forma e meio confusa e nao e correta.

 

 

Alguem sabe como fazer de maNEIRA correta?

 

 

aqui esta o meu script atual (printscreen), mas como disse acho que nao esta feito da melhor maneira

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm....você pode usar json para passar para os valores para o JS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo eu precisei de um sistema desses ontem e consegui fazer, não sei se esta da forma mais correta mais esta ai:

 

Ajax.js

 

// Esta função instancia o objeto XMLHttpRequest

function openAjax() {

var ajax;

try {

ajax = new XMLHttpRequest();

} catch(ee) {

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

} catch(e) {

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

} catch(E) {

ajax = false;

}

}

}

return ajax;

}

 

 

//função que completa os campos

function buscarProduto(COD) {

 

var ajax=openAjax();

var recipiente=gE('adtProduto');

var produto=gE('produto');

var valor=gE('valor');

 

 

ajax.open('GET','codProduto.php?cod='+COD,true);

 

ajax.onreadystatechange=function(){

if(ajax.readyState==1){

produto.value='carregando...';

valor.value='carregando...';

}

if(ajax.readyState==4){

if(ajax.status==200){

r=ajax.responseText;

rproduto= r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

rvalor = r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

rcents = r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

 

//alert(rcents);

 

produto.value=rproduto;

valor.value=rvalor+'.'+rcents;

removerDivs();

 

}//200

}//4

 

}//ready

ajax.send(null);

return false;

 

}//função

 

 

Formulario

<table width="50%" border="0">

<tr>

<td align="center">Cod</td>

<td align="center">Quantidade</td>

<td align="center">Produto</td>

<td align="center">Valor</td>

<td align="center"> </td>

</tr>

<tr>

<td>

<input name="cod" type="text" id="cod" size="15" onkeyup="buscarProduto(this.value)" />=> CHAMANDO A FUNÇÂO

</td>

<td><input name="quantidade" type="text" id="quantidade" value="1" size="10" /></td>

<td><input name="produto" type="text" id="produto" size="45" /></td>

<td><input name="valor" type="text" id="valor" size="15" onkeyup="numMoeda(this)" /></td>

<td><label>

<input type="submit" class="btn" id="btnOk" value="Adicionar" onclick="cadastroProd();" />

</label></td>

</tr>

</table>

 

busca.php

<? @session_start();

 

// Este primeiro header, corrigi o problema de acentuação dos caracteres.

header('Content-Type: text/html; charset=iso-8859-1');

// Os dois headers seguintes, evitam que a página seja armazenada em cache no navegador.

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past

 

 

include "config.php";

 

//recebendo o COD

$cod=$_GET["cod"];

 

//trazendo o produto

$slProduto=mysql_query("select * from produtos where ref='$cod'") or die(mysql_error());

if(mysql_num_rows($slProduto)>0){

$rest=mysql_fetch_array($slProduto);

 

//gerando o valor

if($rest[tipo]==1){

$valorp=number_format($rest[valor],2,',','.');

}else{

$valorp=number_format($rest[promocao],2,',','.');

}

 

//pertindo o valor

$p=explode(",",$valorp);

$vro="$p[0]";

$cents="$p[1]";

 

echo"$rest[nome],$valorp,$cents";

 

}

 

?>

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo eu precisei de um sistema desses ontem e consegui fazer, não sei se esta da forma mais correta mais esta ai:

 

Ajax.js

 

// Esta função instancia o objeto XMLHttpRequest

function openAjax() {

var ajax;

try {

ajax = new XMLHttpRequest();

} catch(ee) {

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

} catch(e) {

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

} catch(E) {

ajax = false;

}

}

}

return ajax;

}

 

 

//função que completa os campos

function buscarProduto(COD) {

 

var ajax=openAjax();

var recipiente=gE('adtProduto');

var produto=gE('produto');

var valor=gE('valor');

 

 

ajax.open('GET','codProduto.php?cod='+COD,true);

 

ajax.onreadystatechange=function(){

if(ajax.readyState==1){

produto.value='carregando...';

valor.value='carregando...';

}

if(ajax.readyState==4){

if(ajax.status==200){

r=ajax.responseText;

rproduto= r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

rvalor = r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

rcents = r.substring(0, (i = r.indexOf(',')));

r = r.substring(++i);

 

//alert(rcents);

 

produto.value=rproduto;

valor.value=rvalor+'.'+rcents;

removerDivs();

 

}//200

}//4

 

}//ready

ajax.send(null);

return false;

 

}//função

 

 

Formulario

<table width="50%" border="0">

<tr>

<td align="center">Cod</td>

<td align="center">Quantidade</td>

<td align="center">Produto</td>

<td align="center">Valor</td>

<td align="center"> </td>

</tr>

<tr>

<td>

<input name="cod" type="text" id="cod" size="15" onkeyup="buscarProduto(this.value)" />=> CHAMANDO A FUNÇÂO

</td>

<td><input name="quantidade" type="text" id="quantidade" value="1" size="10" /></td>

<td><input name="produto" type="text" id="produto" size="45" /></td>

<td><input name="valor" type="text" id="valor" size="15" onkeyup="numMoeda(this)" /></td>

<td><label>

<input type="submit" class="btn" id="btnOk" value="Adicionar" onclick="cadastroProd();" />

</label></td>

</tr>

</table>

 

busca.php

<? @session_start();

 

// Este primeiro header, corrigi o problema de acentuação dos caracteres.

header('Content-Type: text/html; charset=iso-8859-1');

// Os dois headers seguintes, evitam que a página seja armazenada em cache no navegador.

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past

 

 

include "config.php";

 

//recebendo o COD

$cod=$_GET["cod"];

 

//trazendo o produto

$slProduto=mysql_query("select * from produtos where ref='$cod'") or die(mysql_error());

if(mysql_num_rows($slProduto)>0){

$rest=mysql_fetch_array($slProduto);

 

//gerando o valor

if($rest[tipo]==1){

$valorp=number_format($rest[valor],2,',','.');

}else{

$valorp=number_format($rest[promocao],2,',','.');

}

 

//pertindo o valor

$p=explode(",",$valorp);

$vro="$p[0]";

$cents="$p[1]";

 

echo"$rest[nome],$valorp,$cents";

 

}

 

?>

 

Espero ter ajudado

Faltou:

 

function gE(ID) {

return document.getElementById(ID);

}

 

 

Aqui o sistema funcionou redondo.

Ate mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode fazer assim tb:

 

if(ajax.readyState==4){
if(ajax.status==200){

var r = ajax.responseText;
var res = r.split(",");


//alert(rcents);

produto.value=res[0];
valor.value=res[1]+'.'+res[2];
removerDivs();

 

fica mais simples

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.