Ir para conteúdo

POWERED BY:

Arquivado

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

new user

form dinamico ajax

Recommended Posts

não estou conseguindo enviar valor escolhido por formulário dinâmico.

 

alguém poderia me ajudar a resolver?

 

 

 

código que gera os campos do formulário:

busca_busca.php

 

CODE

 

<?

//CONECTA AO MYSQL

require_once("conecta.php");

 

//RECEBE PARÃMETRO

$pMarca = $_POST["marca"];

 

//QUERY

$sql = "

SELECT a.id_modelo, a.dsc_modelo

FROM carros_modelo a

WHERE a.cod_marca = ".$pMarca."

ORDER BY a.dsc_modelo";

 

//EXECUTA A QUERY

$sql = mysql_query($sql);

 

$row = mysql_num_rows($sql);

 

//VERIFICA SE VOLTOU ALGO

if($row) {

//XML

$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";

$xml .= "<modelos>\n";

 

//PERCORRE ARRAY

for($i=0; $i<$row; $i++) {

$codigo = mysql_result($sql, $i, "id_modelo");

$descricao = mysql_result($sql, $i, "dsc_modelo");

$xml .= "<modelo>\n";

$xml .= "<codigo>".$codigo."</codigo>\n";

$xml .= "<descricao>".$descricao."</descricao>\n";

$xml .= "</modelo>\n";

}//FECHA FOR

 

$xml.= "</modelos>\n";

 

//CABEÇALHO

Header("Content-type: application/xml; charset=iso-8859-1");

}//FECHA IF (row)

 

//PRINTA O RESULTADO

echo $xml;

?>

 

 

código da index:

busca_index.php

 

CODE
<?

/*

----------------------------------------------------------------------

Arquivo .............: AJAX + PHP

Desenvolvido por ....: Júlio César Martini

Matéria .............: Artigo 127 - www.imasters.com.br

Criado em ..........: 14/03/2006

----------------------------------------------------------------------

*/

 

//CONECTA AO MYSQL

require_once("conecta.php");

 

//PEGA OS ESTADOS

$sql = "

SELECT a.id_marca, a.dsc_marca, a.sigl_marca

FROM carros_marca a

ORDER BY a.dsc_marca";

 

//EXECUTA A QUERY

$sql = mysql_query($sql);

 

$row = mysql_num_rows($sql); ?>

 

<script language="JavaScript">

 

function Dados(valor) {

//verifica se o browser tem suporte a ajax

try {

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

}

catch(e) {

try {

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

}

catch(ex) {

try {

ajax = new XMLHttpRequest();

}

catch(exc) {

alert("Esse browser não tem recursos para uso do Ajax");

ajax = null;

}

}

}

//se tiver suporte ajax

if(ajax) {

//deixa apenas o elemento 1 no option, os outros são excluídos

document.forms[0].listModelos.options.length = 1;

 

idOpcao = document.getElementById("opcoes");

 

ajax.open("POST", "busca_busca.php", true);

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

ajax.onreadystatechange = function() {

//enquanto estiver processando...emite a msg de carregando

if(ajax.readyState == 1) {

idOpcao.innerHTML = "Carregando...!";

}

//após ser processado - chama função processXML que vai varrer os dados

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}

else {

//caso não seja um arquivo XML emite a mensagem abaixo

idOpcao.innerHTML = "MARCA";

}

}

}

//passa o código do estado escolhido

var params = "marca="+valor;

ajax.send(params);

}

}

 

function processXML(obj){

//pega a tag cidade

var dataArray = obj.getElementsByTagName("modelo");

 

//total de elementos contidos na tag cidade

if(dataArray.length > 0) {

//percorre o arquivo XML paara extrair os dados

for(var i = 0 ; i < dataArray.length ; i++) {

var item = dataArray;

//contéudo dos campos no arquivo XML

var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;

var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;

 

idOpcao.innerHTML = "Selecione uma";

 

//cria um novo option dinamicamente

var novo = document.createElement("option");

//atribui um ID a esse elemento

novo.setAttribute("id", "opcoes");

//atribui um valor

novo.value = codigo;

//atribui um texto

novo.text = descricao;

//finalmente adiciona o novo elemento

document.forms[0].listModelos.options.add(novo);

}

}

else {

//caso o XML volte vazio, printa a mensagem abaixo

idOpcao.innerHTML = "";

}

}

 

</script>

 

<html>

<head>

<title>MARCA - MODELO</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body bgcolor="#FFFFFF">

 

 

<form name="frmAjax" action="busca_enviar.php">

Marca: 

<select name="listMarcas" onChange="Dados(this.value);">

<option value="0">MARCA</option>

<? for($i=0; $i<$row; $i++) { ?>

<option value="<? echo mysql_result($sql, $i, "id_marca"); ?>">

<? echo mysql_result($sql, $i, "dsc_marca"); ?></option>

<? } ?>

</select>

 

<br><br>

Modelo: 

<select name="listModelos" >

<option id="opcoes" value="0"></option>

</select><br>

 

<input name="" type="submit" value="Enviar">

</form>

</body>

</html>

 

código para enviar:

 

busca_envia.php

CODE
<?php

 

 

// Dados do form

$listMarcas=$_POST['listMarcas'];

$listModelos=$_POST['listModelos'];

 

 

// Cadastro dos dados

 

require_once("conecta.php"); //arquivo incluido que contem todas as variaveis necessarias para conexao com o MYSQL

 

 

$resultado = mysql_query("INSERT into carros_busca (listMarcas, listModelos) VALUES ('$listMarcas', '$listModelos')");

 

 

header ("Location:busca_index.php");

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax.open("POST", "busca_busca.php", true); //pra onde vai

var params = "marca="+valor; ajax.send(params); //envia o parâmetro desejado do campo específico

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax.open("POST", "busca_busca.php", true); //pra onde vai

var params = "marca="+valor; ajax.send(params); //envia o parâmetro desejado do campo específico

 

Jonata

 

tentei usar essas informações mas não deu certo.

 

pois ele usa esse arquivo busca_busca.php para preencher os campos do form, e não deu certo fazer ele enviar por essa página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você criou o arquivo xml? que recebe os dados

 

este script é de julio, aprendi com ele praticamente heheh...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você criou o arquivo xml? que recebe os dados

 

este script é de julio, aprendi com ele praticamente heheh...

 

não criei.

 

achei que daria pra enviar os dados via PHP naquele esquema _POST

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.