Jump to content


Photo

Carregando No Campo Errado


  • Faça o login para participar
1 reply to this topic

#1 viniciusjau

viniciusjau

    Veterano

  • Usuários
  • 1492 posts
  • Sexo:Masculino
  • Localidade:Jaú
  • Interesses:Web Designer em Geral

Posted 02/08/2011, 12:31

Fala moçada..
estou tentando adaptar um codigo de combo dinamico de dois selects para três selects....

O problema é que quando eu seleciono a opção no segundo select ao invés de ele atualizar os dados no terceiro select ele atualiza no segundo select mesmo...

Deu pra entender ? :huh:

Meu código está assim:

/* Busca do primeiro para o segundo select */
function list_dados( valor )
{
http.open("GET", "categorias_busca.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[i].split( "|" );
campo_select.options[i] = 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[i] + ".XmlHttp");
return req;
} catch (ex) {};

}
}
} catch (ex) {}
alert("XmlHttp Objects not supported by client browser");
}
var http = getHTTPObject();
// Logo após fazer a verificação, é chamada a função e passada
// o valor à variável global http.


/* Busca do segundo para o terceiro select */
function list_dados2( valor )
{
http.open("GET", "categorias_busca_sub.php?id=" + valor, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}


Dai deixei os campos assim:
Primeiro Select:
<select name="categoria" id="categoria" onchange="list_dados(this.value)" class="campo" style="width:180px; height:20px;">

Segundo Select:
<select name="subcategoria" class="campo" onchange="list_dados2(this.value)" style="width:180px; height:20px;">

Terceiro Select:
<select name="categoriafinal" class="campo" style="width:180px; height:20px;">

#2 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 15/08/2011, 15:48

não testei, mas veja se funciona.

/* Busca do primeiro para o segundo select */
function list_dados( valor )
{
http.open("GET", "categorias_busca.php?id=" + valor, true);
http.onreadystatechange = handleHttpResponse1;
http.send(null);
}

function handleHttpResponse1()
{
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[i].split( "|" );
campo_select.options[i] = new Option( string[0], string[1] );
}
}
}
function handleHttpResponse2()
{
campo_select2 = document.forms[0].categoriafinal;
if (http.readyState == 4) {
campo_select2.options.length = 0;
results2 = http.responseText.split(",");
for( i = 0; i < results2.length; i++ )
{
string2 = results2[i].split( "|" );
campo_select2.options[i] = new Option( string2[0], string2[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[i] + ".XmlHttp");
return req;
} catch (ex) {};

}
}
} catch (ex) {}
alert("XmlHttp Objects not supported by client browser");
}
var http = getHTTPObject();
// Logo após fazer a verificação, é chamada a função e passada
// o valor à variável global http.


/* Busca do segundo para o terceiro select */
function list_dados2( valor )
{
http.open("GET", "categorias_busca_sub.php?id=" + valor, true);
http.onreadystatechange = handleHttpResponse2;
http.send(null);
}





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq