Ir para conteúdo

POWERED BY:

Arquivado

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

sedex

Combobox em ajax com mysql

Recommended Posts

Pessoal já tentei de várias maneiras fazer esse envio de duas variaves através de um <select>

 

Já tentei usar FUNÇÃO explode e depois pegar cada uma das informações tipo ID e CATEGORIA

 

Mas estou usando ajax, e ele não aceita fazer isso!

 

Eu preciso passar as seguintes variaveis:

 

id_categoria = está chegando perfeitamente (É o nome do primeiro select, onde exibe as categorias)

categoria = Não consigo fazer esse campo ir para o banco de dados.

 

id_subcategoria = Não consigo fazer esse campo ir para o banco de dados.

subcategoria = está chegando perfeitamente (É o nome do segundo select, onde exibe as subcategorias)

 

Gostaria de passar os dois dados que estão faltando!

 

Alguém poderia me ajudar?

 

 

Estou usando os seguintes arquivos

 

form.php Aqui aparece as 2 combobox categoria e subcategoria

 

<?php

$con = mysql_connect("localhost", "root", "root");

mysql_select_db("rally");

?>

<html>

<head>

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

<script language="javascript">

function list_dados( valor )

{

http.open("GET", "result.php?id=" + valor, true);

http.onreadystatechange = handleHttpResponse;

http.send(null);

}

 

function handleHttpResponse()

{

campo_select = document.forms[0].subcategoria;

if (http.readyState == 4) {

campo_select.options.length = 0;

results = http.responseText.split(",");

for( i = 0; i < results.length; i++ )

{

string = results.split( "|" );

campo_select.options = new Option( string[0], string[1] );

}

}

}

function getHTTPObject() {

var req;

try {

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

if (req.readyState == null) {

req.readyState = 1;

req.addEventListener("load", function () {

req.readyState = 4;

if (typeof req.onReadyStateChange == "function")

req.onReadyStateChange();

}, false);

}

return req;

}

if (window.ActiveXObject) {

var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];

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

try {

req = new ActiveXObject(prefixes + ".XmlHttp");

return req;

} catch (ex) {};

}

}

} catch (ex) {}

alert("XmlHttp Objects not supported by client browser");

}

var http = getHTTPObject();

</script>

</head>

<body>

<select name="id_categoria" onChange="list_dados( this.value )">

<?php

$consulta = mysql_query("SELECT * FROM categcompeticao ORDER BY categoria DESC");

while( $row = mysql_fetch_assoc($consulta) )

{

echo "<option value=\"{$row['id_categoria']}\">{$row['categoria']}</option>\n";

}

?>

</select>

</p>

<p><select name="subcategoria"></select>

</p>

</body>

</html>

 

result.php Esse é o arquivo que processa e volta os dados para a combo subcategoria

<?php header("Content-Type: text/html; charset=iso-8859-1",true) ?>

<?php

$con = mysql_connect("localhost", "root", "root");

mysql_select_db("rally");

$categoria = addslashes(trim($_GET["id"]));

$consulta = mysql_query("SELECT * FROM subcategcompeticao WHERE id_categoria = '$categoria' ORDER BY subcategoria ASC" );

while( $row = mysql_fetch_assoc($consulta) )

{

echo $row["subcategoria"] . "|" . $row["subcategoria"] . ",";

 

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho antes de você inserir os dados no bd, faz uma query selecionando os dados usando "where id=$_GET" ... depois faz a inserção !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já estou fazendo isso, eu pego o $_GET["id"] e comparo ele com o id_categoria no banco de dados.

 

Até ai está funcionando perfeitamente, a questão é que eu preciso enviar não apenas o id_categoria, mas tambem o nome da categoria.

 

E na subcategoria, eu preciso enviar tambem o id_subcategoria e o nome da subcategoria, só que apenas os registros onde os id_categorias são iguais.

 

 

E se eu tentar passar o valor com um input type="hidden", ele tambem não aceita, pois o resultado dessa página vai para dentro de um select.

 

$categoria = addslashes(trim($_GET["id"]));

$consulta = mysql_query("SELECT * FROM subcategcompeticao WHERE id_categoria = '$categoria' ORDER BY subcategoria ASC" );

while( $row = mysql_fetch_assoc($consulta) )

{

echo $row["subcategoria"] . "|" . $row["subcategoria"] . ",";

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não to entendendo o que você quer fazer .. na página que você recebe os dados do select tem outro select ?? Porque se não tem faça como te disse ..ex: na pág que você recebe antes de inserir faça uma query buscando os dados de acordo com o id_categoria, depois os defina em um fetch_array, e logo os insira ....faça o mesmo com com a subcategoria ..mais detalhe ao invés de enviar o nome da subcategoria no value ..envie tbm o id ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu quero fazer seria semelhante aqueles scripts de CIDADE - ESTADO.

 

 

O que eu quero fazer é o seguinte... voce escolhe uma categoria [Fiat, Ford, Honda], quando voce selecionar por exemplo FIAT, vai aparecer no combo da subcategoria [uNO, PALIO,STRADA].

 

 

E é justamente isso que eu to tentando, estou tentando passar o ID e CATEGORIA também. Mas não aceita enviar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Sedex e amigos,

tente verificar aqui: http://elcio.com.br/ajax/combos/

Logo, você poderá adaptar em sua aplicação.

 

Abraços,

Léo

legal esses exemplos mas ele nao explica como fez...

fiquei interessado no 5

Chamar essa função no onchange do primeiro select, e pronto.

 

como faz esse tipo?

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.