Eu criei um select onde o ajax enche ele de informação, o primeiro que fiz tinha apenas um <select name> esse funcionou normalmente, o segundo tem 2 select name esse não esta funcionando, ele enche o primeiro <select name> mas não enche o segundo, o código esta assim:
function ConsultaInicial()
{
if(ajax)
{
//deixa apenas o elemento 1 no option, os outros são excluídos
//document.forms[0].lista.options.length = 1;
document.forms[0].lista.options.length = 1;
idOpcao = document.getElementById("opcoesLista");
//var DivAguarde = document.getElementById("aguarde")
ajax.open("POST", "includes/consulta_inicial_aluno.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{
if(ajax.readyState < 4)
{
}
if(ajax.readyState == 4 )
{
if(ajax.responseXML)
{
InicialXML(ajax.responseXML);
}
}
}
//passa o código do estado escolhido
var params = "";
ajax.send(params);
}
}
function InicialXML(obj)
{
//pega a tag cidade
var dataArray = obj.getElementsByTagName("Resultado");
var txtUsuario = "";
var CodigoUsuario = "";
//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[i];
//contéudo dos campos no arquivo XML
var CodigoUsuario = item.getElementsByTagName("txtCont")[0].firstChild.nodeValue;
var txtUsuario = item.getElementsByTagName("txtNome")[0].firstChild.nodeValue;
idOpcao.innerHTML = "Escolha aluno";
//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", CodigoUsuario);
//atribui um valor
novo.value = CodigoUsuario;
//atribui um texto
novo.text = txtUsuario;
//finalmente adiciona o novo elemento
document.forms[0].lista.options.add(novo);
}
}
}
Esse é o js que enche o select listaProduto:
function ConsultaInicialProduto()
{
if(ajax)
{
//deixa apenas o elemento 1 no option, os outros são excluídos
//document.forms[0].lista.options.length = 1;
document.forms[0].listaProdutos.options.length = 1;
idOpcaoProduto = document.getElementById("opcoesListaProdutos");
//var DivAguarde = document.getElementById("aguarde")
ajax.open("POST", "includes/consulta_inicial_produto2.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{
if(ajax.readyState < 4)
{
}
if(ajax.readyState == 4 )
{
if(ajax.responseXML)
{
InicialXMLProduto(ajax.responseXML);
}
}
}
//passa o código do estado escolhido
var params = "";
ajax.send(params);
}
}
function InicialXMLProduto(obj)
{
//pega a tag cidade
var dataArrayProduto = obj.getElementsByTagName("ResultadoProduto");
var txtProduto = "";
var CodigoProduto = "";
//total de elementos contidos na tag cidade
if(dataArrayProduto.length > 0)
{
//percorre o arquivo XML paara extrair os dados
for(var i = 0; i < dataArrayProduto.length; i++)
{
var item = dataArrayProduto[i];
//contéudo dos campos no arquivo XML
var CodigoProduto = item.getElementsByTagName("txtContProduto")[0].firstChild.nodeValue;
var txtProduto = item.getElementsByTagName("txtNomeProduto")[0].firstChild.nodeValue;
idOpcaoProduto.innerHTML = "Escolha produto";
//cria um novo option dinamicamente
var novoProduto = document.createElement("option");
//atribui um ID a esse elemento
novoProduto.setAttribute("id", CodigoProduto);
//atribui um valor
novoProduto.value = CodigoProduto;
//atribui um texto
novoProduto.text = txtProduto;
//finalmente adiciona o novo elemento
document.forms[1].listaProdutos.options.add(novoProduto);
}
}
}
Eu sei que os dois js estão funcionando por que se eu for no load do body e retirar um o outro funciona na boa, então os dois js estão funcionando mas estão com algum conflito e pelo que entendi o probema pode estar nessa linha:
Pergunta
alexandremanowar
E a e pessoal beleza
Eu criei um select onde o ajax enche ele de informação, o primeiro que fiz tinha apenas um <select name> esse funcionou normalmente, o segundo tem 2 select name esse não esta funcionando, ele enche o primeiro <select name> mas não enche o segundo, o código esta assim:
formulário html
Esses é o js que enche o select lista:function ConsultaInicial() { if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos //document.forms[0].lista.options.length = 1; document.forms[0].lista.options.length = 1; idOpcao = document.getElementById("opcoesLista"); //var DivAguarde = document.getElementById("aguarde") ajax.open("POST", "includes/consulta_inicial_aluno.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { if(ajax.readyState < 4) { } if(ajax.readyState == 4 ) { if(ajax.responseXML) { InicialXML(ajax.responseXML); } } } //passa o código do estado escolhido var params = ""; ajax.send(params); } } function InicialXML(obj) { //pega a tag cidade var dataArray = obj.getElementsByTagName("Resultado"); var txtUsuario = ""; var CodigoUsuario = ""; //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[i]; //contéudo dos campos no arquivo XML var CodigoUsuario = item.getElementsByTagName("txtCont")[0].firstChild.nodeValue; var txtUsuario = item.getElementsByTagName("txtNome")[0].firstChild.nodeValue; idOpcao.innerHTML = "Escolha aluno"; //cria um novo option dinamicamente var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", CodigoUsuario); //atribui um valor novo.value = CodigoUsuario; //atribui um texto novo.text = txtUsuario; //finalmente adiciona o novo elemento document.forms[0].lista.options.add(novo); } } }Esse é o js que enche o select listaProduto:function ConsultaInicialProduto() { if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos //document.forms[0].lista.options.length = 1; document.forms[0].listaProdutos.options.length = 1; idOpcaoProduto = document.getElementById("opcoesListaProdutos"); //var DivAguarde = document.getElementById("aguarde") ajax.open("POST", "includes/consulta_inicial_produto2.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { if(ajax.readyState < 4) { } if(ajax.readyState == 4 ) { if(ajax.responseXML) { InicialXMLProduto(ajax.responseXML); } } } //passa o código do estado escolhido var params = ""; ajax.send(params); } } function InicialXMLProduto(obj) { //pega a tag cidade var dataArrayProduto = obj.getElementsByTagName("ResultadoProduto"); var txtProduto = ""; var CodigoProduto = ""; //total de elementos contidos na tag cidade if(dataArrayProduto.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0; i < dataArrayProduto.length; i++) { var item = dataArrayProduto[i]; //contéudo dos campos no arquivo XML var CodigoProduto = item.getElementsByTagName("txtContProduto")[0].firstChild.nodeValue; var txtProduto = item.getElementsByTagName("txtNomeProduto")[0].firstChild.nodeValue; idOpcaoProduto.innerHTML = "Escolha produto"; //cria um novo option dinamicamente var novoProduto = document.createElement("option"); //atribui um ID a esse elemento novoProduto.setAttribute("id", CodigoProduto); //atribui um valor novoProduto.value = CodigoProduto; //atribui um texto novoProduto.text = txtProduto; //finalmente adiciona o novo elemento document.forms[1].listaProdutos.options.add(novoProduto); } } }Eu sei que os dois js estão funcionando por que se eu for no load do body e retirar um o outro funciona na boa, então os dois js estão funcionando mas estão com algum conflito e pelo que entendi o probema pode estar nessa linha:
document.forms[0].lista.options.add(novo);
document.forms[1].listaProdutos.options.add(novoProduto);
Alguém sabe como corrigir?
Valeu
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.