Ir para conteúdo
Fórum Script Brasil
  • 0

Variavel javascript mais ASP


marvi

Pergunta

Pessoal,

Estou com o script que adiciona campos. Mas, o que acontece é como vou pegar valor desses campos que ele adiciona e inserir no banco de dados juntos com as outras informações do formulário? Se der como ajudar, vejam:

O script:

<script type="text/javascript">

var arrInput = new Array(0);
var arrInputValue = new Array(0);

function addInput() {
//arrInput.push(createInput(arrInput.length));
arrInput.push(arrInput.length);
//arrInputValue.push(arrInputValue.length);
arrInputValue.push("");
display();
}

function display() {
document.getElementById('parah').innerHTML="";
for (intI=0;intI<arrInput.length;intI++) {
document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
}
}

function saveValue(intId,strValue) {
arrInputValue[intId]=strValue;
} 

function createInput(id,value) {
return "<input type='text' id='test "+ id +"' onChange='BLOCKED SCRIPTsaveValue("+ id +",this.value)' value='"+ value +"'><br>";
}

function deleteInput() {
if (arrInput.length > 0) { 
arrInput.pop(); 
arrInputValue.pop();
}
display(); 
}
// End -->
</script>

<body>

<p id="parah"></p>

<a href="BLOCKED SCRIPTaddInput()">Insira mais caixas de textos(s)</a><br>
<a href="java script:deleteInput()">Remova as caixas de texto(s)</a>

</body>

Vejam, coloquei um alerta e ele mostrou um valor nessa linha:

function createInput(id,value) {

alert(id)

return "<input type='text' id='test "+ id +"' onChange='javascriptaveValue("+ id +",this.value)' value='"+ value +"'><br>";

}

Coloquei um alert(id) e ele mandou valor: 1, 2, 3, 4, 5, 6... de acordo com a quantidade de campos que eu iria inserindo... Então essa linha function createInput(id,value) é onde está a questão: esse Id é a numeração de quantidade de campos e esse value é, obviamente, o valor do campo digitado, isso?

Aí eu passaria isso para uma session:

session("novo")=id (mas como colocaria uma variável de script aqui?)

E o value do script? Faria isso:

<%

for i=1 to session("novo")

%>

<input type="text" name="nome<%=i%>" value="<%=request.form("nome"&i)%>">

<%next%>

e faria na outra página:

for i=1 to session("novo")

tab = "INSERT INTO tabela (nome) VALUES ('" & request.form("nome"&i)& "')"

Set rstab=Conexao.Execute(tab)

next %>

Seria isso? Me ajudem na lógica, porque estou tentando aprender isso...

Obrigado!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Porque encontrei esse script que é bem mais simples e moderno para fazer. Só que tem essa questão acima...

Se não tiver alguma maneira para esse script... acabo fazendo da outra forma do tópico.

Só perguntei porque é aconselhavel evitar flood no fórum ou mesmo post em paralelo, pois dificulta a ajuda.

É só um toque.

Sobre o que você questionou:

Aí eu passaria isso para uma session:

session("novo")=id (mas como colocaria uma variável de script aqui?)

E o value do script? Faria isso:

Atribuir o valor de uma variável criada no escopo do JavaScript a uma variável criada no escopo do ASP não é possivel. Pois ASP e Javascript são processados de forma diferentes no servidor.

O contrário sim:

&lt;script>
     var id = <%=session("novo")%>
</script>

Mais alguma dúvida?

Editado por jothaz
Link para o comentário
Compartilhar em outros sites

  • 0

A idéia é por ai mesmo.

Como eu já dito no outro post usar innerHTML permite adicionar controles a pagina html em tempo real.

O problema não é o script propriamente dito pois a sintexa do innerHTML é relativamente fácil.

O problema é cria uma lógica levando-se em considerações todas as variáveis que utilize o innerHTML.

você mesmo me disse que poderia ter de acrescentar 200 campo em um formulário para que seja informado o número de serie. Não é isso?

Então isso tb deve ser levado em conta. Inclusive com relação ao layout.

Outra coisa é a consistência na entrada dos campos. Caso o usuario informe 200 terá informar os 200 número de series não é isso?

Mas a idéia é ir criado dinamicamente mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0

Ho, o problema desse meu script é mandar para outra página as informações dos campos, de todos que foram gerados... Não sei porque esse script tem capacidade de gerar vários campos, mas só pegar o primeiro campo...

Pois se você observar no meu script ele chama uma função:

<input type='text' id='test "+ id +"' onChange='javascript : saveValue("+ id +",this.value)' value='"+ value +"'><br>

e a função é:

function saveValue(intId,strValue) {

arrInputValue[intId]=strValue;

}

que modifiquei para:

function saveValue(intId,strValue) {

oi=arrInputValue[intId]=strValue;

document.location.href = "pagina.asp?nome=" + oi;

}

Mas aí é que está o problema: Primeiro é porque se é comando é onChange no campo text e a pessoa gera 3 campos, assim que ele digitar o primeiro campo a página envia os dados... Assim não pode... Tentei colocar um submit dentro do form: <a href="#" onclick ="saveValue(this.value,this.value)">ok</a> O valor não vai para outra página...

E outra questão é que ele pega o primeiro campo, se a pessoa colocou 3 campos, como essa função pegaria os 3 valores de cada campo e mandaria para outra página? Entende? Teria tipo um loop?

Editado por marvi
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...