Ir para conteúdo

POWERED BY:

Arquivado

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

Heber Almeida

script

Recommended Posts

Olá galera este meu primeiro tópico de ajuda, estou desenvolvendo uma bíblia online um pouco diferente das que encontramos por ai, é o seguinte tenho o banco de dados pronto com 4 tabelas cada tabela contem um id. o que eu queria era fazer aqueles <select> com <option> gerando automaticamente, tipo a primeira opção é Testamento que é buscada diretamente do banco de dados o usuário seleciona o testamento, depois de selecionado aparece automaticamente as informações no <select2> com as informações de livros do testamento selecionado. Por outra vez selecionado o capitulo, aparece automaticamente as informações <select3> aparecendo sim o 1 capitulo mostrando pro usuário, quando o usuário clica novamente no <select1> as opções do <select2> e <select3> ficam vazias.

Quem puder me ajudar, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara aqui no forum tem exemplos disso, você jah pesquisou?

Já tentou desenvolver esta solução? Posta o codigo se tiver alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só você fazer um SELECT populado pelos dados, dá uma procurada no forum que existem N exemplos, depois você usa

a seleção para fazer uma busca no bd e apresenta os dadsos obtidos da forma k desejar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andei procurando mas não achei nada que fosse igual o que eu quero.

 

mais ou menos eu gostaria que funcionasse neste estilo.

http://www.umadecampsetor4.com.br/1.asp

 

<script language="JavaScript" type="text/javascript">
<!--



// primeiro combo box

	data_1 = new Option("1", "$");
	data_2 = new Option("2", "$$");

// segundo combo box
	data_1_1 = new Option("11", "-");
	data_1_2 = new Option("12", "-");
	data_1_3 = new Option("13", "-");
	data_2_1 = new Option("21", "-");


// terceiro combo box

	data_1_1_1 = new Option("111", "*");
	data_1_1_2 = new Option("112", "*");
	data_1_1_3 = new Option("113", "*");
	data_1_2_1 = new Option("121", "*");
	data_1_2_2 = new Option("122", "*");
	data_1_2_3 = new Option("123", "*");
	data_1_2_4 = new Option("124", "*");
	data_2_1_1 = new Option("211", "**");
	data_2_1_2 = new Option("212", "**");
	data_2_2_1 = new Option("221", "**");
	data_2_2_2 = new Option("222", "**");
	data_2_3_1 = new Option("231", "***");
	data_2_3_2 = new Option("232", "***");

// outros parametros

	displaywhenempty=""
	valuewhenempty=-1

	displaywhennotempty="-selecione-"
	valuewhennotempty=0


function change(currentbox) {
	numb = currentbox.id.split("_");
	currentbox = numb[1];

	i=parseInt(currentbox)+1

// codigo

	while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
		   (document.getElementById("combo_"+i)!=null)) {
		 son = document.getElementById("combo_"+i);
		 // I empty all options except the first one (it isn't allowed)
		 for (m=son.options.length-1;m>0;m--) son.options[m]=null;
		 // I reset the first option
		 son.options[0]=new Option(displaywhenempty,valuewhenempty)
		 i=i+1
	}


	stringa='data'
	i=0
	while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
		   (document.getElementById("combo_"+i)!=null)) {
		   eval("stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
		   if (i==currentbox) break;
		   i=i+1
	}



	following=parseInt(currentbox)+1

	if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
	   (document.getElementById("combo_"+following)!=null)) {
	   son = document.getElementById("combo_"+following);
	   stringa=stringa+"_"
	   i=0
	   while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {


	   	  if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
	   		  if (eval("typeof("+stringa+"1)=='undefined'"))
	   			 eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)")
	   		  else
				 eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
		  else
			  eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
		  i=i+1
	   }

	   i=1
	   combostatus=''
	   cstatus=stringa.split("_")
	   while (cstatus[i]!=null) {
		  combostatus=combostatus+cstatus[i]
		  i=i+1
		  }
	   return combostatus;
	}
}

//-->
</script>


<form>
<select name="combo0" id="combo_0" onChange="change(this);" style="width:200px;">
<option value="">Selecione</option>

<option value="1">1</option>
<option value="2">2</option>


</select>
<BR><BR>
<select name="combo1" id="combo_1" onChange="change(this)" style="width:200px;">
	<option value="value1">  </option>
</select>
<BR><BR>
<select name="combo2" id="combo_2" onChange="change(this);" style="width:200px;">
	<option value="value1">  </option>
</select>
<BR><BR>
 </form>

Esse é o código do Java script, queria a seguintes informações

<select1>id_testamento;testamento

<select2>id_testamento = <select1 id_testamento>;id_livros;livros

<select3>id_testamento = <select1 id_testamento>;id_livros = <select2 id_livros>;id_capitulos;capitulos

Resultado id_testamento;id_livros;id_capitulos;id_versiculos;versiculos

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade essa ação é JavaScript, só para listar que é ASP, seu ASP está ok, os selects estão funcionando, testou sem o JavaScript, assim se o ASP tiver correto, posso passar você para a área de JavaScript, é melhor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

na realidade seria o asp + o java script trabalhando junto, tentei colocar os registros do banco adaptando este script, mas sem sucesso. a idéia seria esta, que está em prática, mas buscando as informações do banco e dando o resultado do banco, agora sobre o asp se for pra gerar o código sem o select sei fazer a parte de programação, hoje mesmo colocarei online sem o <select options> e postarei aqui o resultado, mas minha intensão real era mostrar os dados dentro da select.

quem puder me ajudar agradeço, alias nunca vi nenhum topico assim semelhante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi feita uma integração com o ajax, agora apareceram 2 erros:

Na troca de testamento não zera o valor dos capitulos.

Erro de Caracteres

Confira o link funcionando.

http://www.umadecampsetor4.com.br/biblia/selecionar.asp

Página selecionar.asp

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="pt-br">
<title>Untitled Document</title>
<script src="js/ajax.js" language="javascript"></script>
<script language="javascript">

	ajaxTestamento("dados.asp?op=testamento&codigo=0");
	
	function carregarLivros(codigo)
	{
		ajaxLivros("dados.asp?op=livros&codigo="+codigo);		
	}
	
	function carregarCapitulos(codigo)
	{
		ajaxCapitulos("dados.asp?op=capitulos&codigo="+codigo);
	}	
</script>
</head>
<body>
<label>Escolha um Testamento: </label>
<div id="testamento">
  <select name="testamento" onchange="carregarLivros(this.value);">
  </select>
</div>
<br />
  <label>Escolha um Livro: </label>
<div id="livros">
  <select name="livros">
	<option value="0">(Selecione um Testamento)</option>
  </select>
</div>
<br />
  <label>Escolha um Capítulo</label>
<div id="capitulos">
  <select name="capitulos">
	<option value="0">(Selecione um Livro)</option>
  </select>
</div>
<br />
</body>
</html>

 

Dados.asp

<%
opcao = Request.QueryString("op")
codigo = Request.QueryString("codigo")

if(opcao = "testamento") then
	sql = "select cod_testamento, testamento from testamento"
	rs.Open sql, conn, 3
	rs.MoveFirst
	Response.Write("<select name="""&opcao&""" onchange=""carregarLivros(this.value);"">")
	while not rs.EOF
		response.Write("<option value="""&rs.fields("cod_testamento")&""">")
		response.Write(rs.fields("testamento"))
		response.Write("</option>")
		rs.MoveNext
	wend
	Response.Write("</select>")
	rs.Close

elseif(opcao = "livros" and codigo <> 0) then
	sql = "select cod_livros, livros from livros where cod_testamento = "&codigo
	rs.Open sql, conn, 3
	rs.MoveFirst
	Response.Write("<select name="""&opcao&""" onchange=""carregarCapitulos(this.value);"">")
	while not rs.EOF
		response.Write("<option value="""&rs("cod_livros")&""">")
		response.Write(rs.fields("livros"))
		response.Write("</option>")
		rs.MoveNext
	wend
	Response.Write("</select>")

elseif(opcao = "capitulos" and codigo <> 0) then
	sql = "select cod_capitulos, capitulos from capitulos where cod_livros = "&codigo
	rs.Open sql, conn, 3
	rs.MoveFirst
	Response.Write("<select name="""&opcao&""" >")
	while not rs.EOF
		response.Write("<option value="""&rs("cod_capitulos")&""">")
		response.Write(rs("capitulos"))
		response.Write("</option>")
		rs.MoveNext
	wend
	Response.Write("</select>")

else	
	Response.Write("<select name="""&opcao&""" >")
	response.Write("<option value=""0"">")
	response.Write("(selecione a opção acima)")
	response.Write("</option>")
	Response.Write("</select>")
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro apresentado ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele funciona, clique neste link para ver ele funcionando

http://www.umadecampsetor4.com.br/biblia/selecionar.asp

 

o problema é o seguinte tá dando erro em caracteres, ele busca todas as informações no banco de dados, outro erro é quando você seleciona digamos novo testamento > Mateus > 01, quando você clica no Velho testamento ele nao limpa a informação do capitulo, na realidade ele fica mostrando o capitulo do novo testamento ou seja o livro de Mateus.

Mas assim ele não retorna nenhum erro na página. ele só nao funciona como o esperado, acho q estou errando em alguma coisa.

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.