Ir para conteúdo

POWERED BY:

Arquivado

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

Ashramkun

[Resolvido] combobox onchange

Recommended Posts

Continuando outros dois posts, a cada momento me deparo com uma dúvida. Vamos ver se alguem consegue me dar uma luz novamente.

 

Bom, o link do post até agora foi esse:

http://forum.imasters.com.br/index.php?showtopic=350882

 

Como eu comentei no post, ela está funcionando perfeita até agora. Eu estava tentando adicionar uma ultima função que alem de criar a pasta (que esta funcionando ja), cria um arquivo contendo a opção que foi selecionada no combobox. A função de criar arquivo eu tenho funcionando, mas não estou conseguindo passar o valor selecionado no combobox.

 

Em outras palavras, eu preciso que a função que cria a pasta, tambem crie um arquivo xml (ou txt tanto faz) com o conteudo selecionado. Eu tentei passar a variavel pkval, que seria basicamente a seleção no evento onchange, mas não consegui.

 

Eu não coloquei os códigos aqui devido a já ter no outro post, mas se for necessário, eh só dar um toque que eu copio do outro post e colo aqui.

 

Valeu a força por enquanto xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função para criar o arquivo você tem que criar na mesma pagina aonde é criado a pasta, coloque a função para criar o arquivo abaixo do criar pasta, o sistema ira saber qual nome dar o arquivo pois ira recuperar o valor querystring

 

Primeiramente crie uma variavel da function para isso faça o seguinte

 

substitua este atual

 

function criapasta()

por este

 

function criapasta(arquivo)

para mandar o valor querystring substitua essa linha do javascript

 

xmlHttp.open("GET", 'pasta.asp', true);

Por esta

 

xmlHttp.open("GET", "pasta.asp?arquivo="+ arquivo +"", true);

no onChange, você tera que definir qual vai ser a variavel que a function ira interpretar e mandar por querystring para o sistema montar o arquivo

 

substitua essa linha

 

criapasta();

por esta

 

criapasta('patrique');

neste exemplo acima o sistema iria identificar na querystring arquivo o nome patrique, e fazer o sistema criar um arquivo chamado patrique... se você modifica-se por criapasta('qualquerum'); o sistema ira identificar na querystring arquivo e montar um arquivo cgamado qualquerum.

 

É bem fácil, agora é so você adaptar e montar a seu gosto e modo.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa ola novamente Patrique.

Desculpe a demora, mas nesse feriado eu fiquei fora.

Vou dar uma testada no que você me passou ate o final do dia. Valeu mesmo por enquanto. Depois posto os resultados xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal Patrique. Eu testei a função. Ficou duas dúvidas no ar.

 

Na função, ele esta passando "patrique" porque é uma string fixa. Como estou no evento onchange de um combobox, eu gostaria de passar o valor que foi selecionado, e não uma string fixa. O codigo esta assim:

 

<select name="yourChoiceOfName" style="width:130px;height:20px" onChange="if(this.selectedIndex!=0)self.location=this.options[this.selectedIndex].value;criapasta('patrique');">
<%
Set xml = Server.CreateObject("msxml2.ServerXMLHTTP")
xml.open "GET", "caminho/file.xml", False
xml.send

Set doc = Server.CreateObject("msxml2.DOMDocument")
doc.loadXML( xml.ResponseXML.xml )

Set items = doc.getElementsByTagName("getCommunitydata")
For inum = 0 To items.length-1
	Set curitem = items.item(inum)

	Set link = curitem.SelectSingleNode("link")
	Set nm = curitem.SelectSingleNode("community_name")
	If Not( link Is Nothing) AND Not( nm Is Nothing ) Then
		pkval = Trim(link.Text)
		nmval = Trim(nm.Text)
		Response.Write "<option value=http://"&pkval&">" & nmval & "</option>" & vbNewLine

	End If
Next
%>
</select>

Repare que ele sempre envia a string "patrique". Como posso fazer para passar o que foi escolhido no combobox?

 

Outra coisa, a função de criapasta, de acordo com você, está recebendo o valor que foi passado no seu exemplo com a string "patrique". Como faço referencia a esse valor? Veja um exemplo de como esta a funcão:

 

<%
		Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		FSO.CreateFolder(Server.MapPath("nome pasta")) 

	   caminho = Server.MapPath("escolha.xml")
	   Set GRAVAR = FSO.CreateTextFile(caminho,true)
	   gravar.write (arquivo)
	   gravar.close		
%>

Ta vendo onde ta escrito arquivo? É exatamente ai que quero que o valor string escolhido seja escrito dentro do arquivo escolha.xml

 

Valeu mesmo pela ajuda até agora. E desculpe por ficar perguntando tudo. Creio que depois de resolver esse último detalhe, o resto eu vou conseguir me virar.

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, preciso fazer uns testes para poder ajudar, mais vai tentando ae cara, a situação de gravar no arquivo é bem fácil basta pesquisar, agora para pegar o nome do selecionado e jogar pelo onChange eu precisarei fazer uns testes, chegando em casa a noite eu te ajudo... mais como eu disse vá tentando ae.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos de combobox em AJAX no forum tb, pode lhe dar alguma luz...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ashramkun para pegar o valor do option selecionado você tera que fazer o seguinte

 

Crie um id no option, e coloque nele o nome do valor neste caso o valor é o nmval certo? repare abaixo que eu criei o id="& nmval &"

 

Response.Write "<option id="& nmval &" value=http://"&pkval&">" & nmval & "</option>" & vbNewLine

 

depois no onChange você faz com que o valor que esta dentro deste id seja passado para dentro da function criapasta e consequentemente ira passar o valor do nmval para a querystring, fazendo com que o arquivo pasta.asp reconheça qual foi o item selecionado e fazendo assim a criação da pasta.

 

para isso coloque dentro da function criapasta que esta no onChange a função this.options[this.selectedIndex].id desta forma ele ira resgatar o valor do campo selecionado, o code do select deste option ficara assim

 

<select name="yourChoiceOfName" onChange="criapasta(this.options[this.selectedIndex].id);if(this.selectedIndex!=0)self.location=this.options[this.selectedIndex].value">

 

O resto é so utilizar a cabeça para a montagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Patrique xD

 

Ja faz um tempo né? Você me ajudou e só agora que eu pude testar a sua solução. Esse projeto é para eu aprender mesmo, mas tive outro que estava na prioridade, por isso deixei esse de lado por um tempo. Vamos lá!

 

A sua solução foi perfeita. Eu so tive colocar um Request.QueryString na rotinha de criar o arquivo que tudo ocorreu bem. Muito obrigado mesmo peloa ajuda e desculpe a demora =)

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.