Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

03-07-2007 16:30

Esse é um script para adicionar uma quantidade de input file no form a cada click, o name do input file está em array ( arquivo[] ) para melhor manipulação dos dados com PHP.

<script> function cria(quantos) {   for(var i=0; i < quantos; i++) {   // cria o input novo = document.createElement('input');   // define o tipo do input novo.setAttribute('type', 'file');   // define o name do input   novo.setAttribute('name', 'arquivo[]');   // input criado document.getElementById('campos').appendChild(novo); }   } </script>


<form action="" method="GET">   <input type="file" name="arquivo[]">   [color=green]<!-- id é o número de inputs a ser criado //-->[/color] <input type="button" value="adicionar campos" id="3" onclick="cria(this.id)">   <div id="campos" style="width:100px;"></div> <input type="submit">   </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 15:47

ta eu fiz algumas alterações no script para oque eu necessitava

<script> function cria(quantos) {   for(var i=0; i < quantos; i++) {   // cria o input novo = document.createElement('input');   // define o tipo do input novo.setAttribute('type', 'text');   // define o name do input novo.setAttribute('name', 'opcao1');   // input criado document.getElementById('campos').appendChild(novo); }   } </script>


<form action="" method="GET">   <input type="text" name="opcao1">   <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)">   <div id="campos" style="width:100px;"></div> <input type="submit">   </form>

so que agora eu presiso limitar a quantidade tipo quando atingir 8 opçao ele desabilitar o botao.
e o name mudar de opçao 1 para 2 3 4 e assim susivamente. o pq disso! pq cada opçcao vai em uma coluna na tabela se o nome for o memso vai repetir a mesma coisa en todas entende.
fico no aguardo se puder me ajudar!!!
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 15:58

Seria isso?

<script> var qt = 0; function cria(quantos) { for(var i=0; i < quantos; i++) { // cria o input novo = document.createElement('input'); // define o tipo do input novo.setAttribute('type', 'text'); // define o name do input novo.setAttribute('name', qt); // aqui vai o número que será incrementado, 1, 2, etc... // input criado document.getElementById('campos').appendChild(novo); qt++;   } if(qt >= 7) { // 7 porque um input já vem criado document.getElementById('1').disabled='true'; }       } </script>


<form action="" method="GET"> <input type="text" name="opcao1"> <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)"> <div id="campos" style="width:100px;"></div> <input type="submit"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 16:54

estou tentand usa o foreach para pegar o valor so que nao esta indo oque estou fazendo de errado nesse codigo. sera que poderia me ajudar????

<script> var qt = 0; function cria(quantos) { for(var i=0; i < quantos; i++) { // cria o input novo = document.createElement('input'); // define o tipo do input novo.setAttribute('type', 'text'); // define o name do input novo.setAttribute('name', qt); // aqui vai o número que será incrementado, 1, 2, etc... // input criado document.getElementById('campos').appendChild(novo); qt++;   } if(qt >= 7) { // 7 porque um input já vem criado document.getElementById('1').disabled='true'; }   } </script>


<form action="" method="post" enctype="multipart/form-data"> <input type="text" name="opcao[]"> <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)"> <div id="campos" style="width:100px;"></div> <input type="submit" id="submit" name="submit"> </form>


<?php if(isset($_POST['submit'])){     extract($_POST); foreach(array($opcao) as $info1) for($i = 0; $i < count($info1); $i++) { echo $info1[$i]; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 17:10

Para usar o foreach, você precisa se basear nesse script

Enviar-varios-array-pelo-formulario_1_4645.html

Observe no script o name valor[]

Esse script que recomendei aqui vai seguir essa regra

novo.setAttribute('name', 'valor[]');
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 17:46


<script> var qt = 0; function cria(quantos) { for(var i=0; i < quantos; i++) { // cria o input novo = document.createElement('input'); // define o tipo do input novo.setAttribute('type', 'text'); // define o name do input novo.setAttribute('value', qt); // aqui vai o número que será incrementado, 1, 2, etc... // input criado document.getElementById('campos').appendChild(novo); qt++;   } if(qt >= 7) { // 7 porque um input já vem criado document.getElementById('1').disabled='true'; }   } </script>


<form action="" method="post" enctype="multipart/form-data"> <input type="text" name="valor[]" value=""> <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)"> <div id="campos" style="width:100px;"></div> <input type="submit" id="submit" name="submit"> </form>


<?php if(isset($_POST['submit'])){ extract($_POST); foreach(array($valor) as $info1) for($i = 0; $i < count($info1); $i++) { echo $info1[$i]; } } ?>

obeserver o meu codigo eu fiz uma mudança ao inves de colocar em name o valor do script eu coloquei em value para ver qoue vem do script correto!
ai eu percebi o seguinte que o campo que ja vem gerado ele vem vazio, mas quando eu clico ele abre um campo com o que vem do script 0 1 2 3 4 5 6 que forma os 7 campos o 8 que seria o primeiro vem sem nd. agora me pergunto pq nao vem o resultado ali em baixo tipo se eu colocar um numero no que vem vazio ele me tras o numero na resposta ali embaixo. so que oque estou achando, que quando o campo e gerado o name e gerado em branco somente com o numero do scrpit.. e agora faço oque?????
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 17:55

pq e o seeguinte quando ele o script gera um campo novo ele gera assim
novo.setAttribute('name', qt); ele gera com o numero somente 1 2 3 456 um desestes e nao gera com o valor[].
ja tentei fazer valor[qt];

so que nao vai tem alguma ideia de como fazer isso ????
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 17:58

Você tem que adicionar o atributo name para os inputs que são gerados

   novo.setAttribute('name', 'valor[]');

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 18:37

mas e o qt vai ir onde? pq eu presiso de diferenciamento nos campos????
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 19:08

Pensei que era para se basear no valor, e não no name do input. Se quer usar o name, você vai ter que criar uma variável para cada input qt
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 21:11

poderia me dar um exemplo de como fazer isso????
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 21:53

Você quer obter o name do input ou os valores?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 22:26

quero oberter pelo foreach so que para isso presiso do nome exemplo valor[].
presiso de numeros diferenciados e kd vez que clicar no botao ele abrir mas 1 texfield.

presiso de numeros diferenciados e do nome "valo[]"

<script> var qt = 0; function cria(quantos) { for(var i=0; i < quantos; i++) { // cria o input novo = document.createElement('input'); // define o tipo do input novo.setAttribute('type', 'text'); // define o name do input novo.setAttribute('name', qt); // aqui vai o número que será incrementado, 1, 2, etc... // input criado document.getElementById('campos').appendChild(novo); qt++;   } if(qt >= 7) { // 7 porque um input já vem criado document.getElementById('1').disabled='true'; }   } </script>


<form action="" method="post" enctype="multipart/form-data"> <input type="text" name="valor[]" value=""> <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)"> <div id="campos" style="width:100px;"></div> <input type="submit" id="submit" name="submit"> </form>


<? if(isset($_POST['submit'])){ extract($_POST); foreach(array($valor) as $info1) for($i = 0; $i < count($info1); $i++) { echo $info1[$i]; }}?>

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

22-11-2011 22:58

Se baseia nesse exemplo

<form action="" method="post"> <input type="text" name="v1" value="valor1"> <input type="text" name="v2" value="valor2"> <input type="submit"> </form>


<?php if(isset($_POST)) { $valor = 0; foreach($_POST as $name => $valores) { $valor++; echo "$name: $valores<br>"; } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 23:06

mas eu presiso do gerador de texfield o script.
a funçao como eu faço para usar a funçao tb ?????
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 23:13

como e que eu faço para juntar todas esas funçoes a de clicar e aparecer mas janelinhas a da name com o nome "valor[]" usando o foreach.
fico no aguardo se vc suber e puder me ajudar.
att joao paulo
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 23:28

ou entao faz melhor so me diz como eu faço para que o primeiro texfield que ja vem na tela vir com o numero do script da funçao ao invex de vir sem nd como ta vindo pq se vir tudo igual eu trato eles com $exe = $_POST['0'];
e resolve meu problema. att joao paulo
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

22-11-2011 23:34

se tu descobri como fazer com o foreach passa aki, pq se nao pode deixa pq fiz uma gambiarra ^^.
olha como fico:

<script> var qt = 1; function cria(quantos) { for(var i=0; i < quantos; i++) { // cria o input novo = document.createElement('input'); // define o tipo do input novo.setAttribute('type', 'text'); // define o name do input novo.setAttribute('name', qt); // aqui vai o número que será incrementado, 1, 2, etc... // input criado document.getElementById('campos').appendChild(novo); qt++;   } if(qt >= 8) { // 7 porque um input já vem criado document.getElementById('1').disabled='true'; }   } </script>


<form action="" method="post" enctype="multipart/form-data"> <input type="text" name="0" value=""> <!-- id é o número de inputs a ser criado //--> <input type="button" value="adicionar campos" id="1" onclick="cria(this.id)"> <div id="campos" style="width:100px;"></div> <input type="submit" id="submit" name="submit"> </form>


<?php if(isset($_POST['submit'])){ $tes0 = $_POST['0'];     $tes1 = $_POST['1']; $tes2 = $_POST['2']; $tes3 = $_POST['3']; $tes4 = $_POST['4']; $tes5 = $_POST['5']; $tes6 = $_POST['6']; $tes7 = $_POST['7']; echo $tes0; echo $tes1; echo $tes2; echo $tes3; echo $tes4; echo $tes5; echo $tes6; echo $tes7; } ?>

prontinho. o name começa com 0 ai os outro começa com o numero 1 como esta la no var qt la emcima prontinho oque aparece funciona. se caso conseguir fazer a mesma coisa que esse codigo fez com o foreach agradeço se nao nao presisa vlw igual. ate
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

23-11-2011 09:32

O foreach serve para obter os dados na ordem como falei, nome e valor. Se dessa forma ai você conseguiu é melhor usar ela.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

23-11-2011 22:40

ok vlw, so mais uma coisa se eu deixo uma desas text vazia ele da um erro para noa dar esse erro oque eu teria que fazer o erro da nas linhas onde tem o $_POST. me da um dica ai do que poderia ser!!! att joao paulo
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

24-11-2011 08:02

Como os campos são criados dinamicamente, o ideal seria fazer uma validação ao enviar o formulário. Ai a validação teria que ficar em alert.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

10-12-2011 11:12

tenho o seguinte codigo para gerar um input file

 <script LANGUAGE="JavaScript">     totals =0;       function adiciona(){     totals++         tbl = document.getElementById("add")         var novaLinha = tbl.insertRow(-1);         var novaCelula;           novaCelula = novaLinha.insertCell(0);             novaCelula.innerHTML = "";           novaCelula = novaLinha.insertCell(1);                 novaCelula.className = "color_td";         novaCelula.align = "left";         novaCelula.innerHTML = "<input id='adicional'  type='text' style=' width:200px; height:25px; margin:0 10px 0 0'/><label style='margin:0 10px 0 0'>Valor R$</label><input type='text' style=' width:100px; height:25px;'/><input type='button' id='apagar' value='' onclick='deleteRow(this.parentNode.parentNode.rowIndex)' />";       }         </script>

agora a tabela que ja vem a mostra:

    <tbody id="add"  width="880" border="0" cellspacing="5">      <tr>     <td class="color_td1"><label class="titulo">Adicionais:</label></td>     <td class="color_td">     <input id="adicional"  type="text" style=" width:200px; height:25px; margin:0 10px 0 0"/>     <label style="margin:0 10px 0 0">Valor R$</label><input type="text" style=" width:100px; height:25px;"/>     <input type="button" id='incluir' value='' onclick='adiciona()' />     </td>   </tr></tbody>

eu presisava o seguinte que uma dessas tabelas geradas vinhece com uma id e uma name diferente para eu poder puxar pelo post.
ou se tu tiver algo que usando esse codigo acima eu consiga pegar o resultado do que for digitado ai dentro tambem server. e presiso limitar a quantida de linha que gera.. se puder me ajudar te agradeço.
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

10-12-2011 11:43

mandei o codigo e ele nao esta funcionando aki ta ele atualizado funcionando ele usa jquery ok.

vlw

<script src="jquery.js" type="text/javascript"></script>  <script LANGUAGE="JavaScript">     totals =0;       function adiciona(){     totals++         tbl = document.getElementById("add")         var novaLinha = tbl.insertRow(-1);         var novaCelula;           novaCelula = novaLinha.insertCell(0);             novaCelula.innerHTML = "";           novaCelula = novaLinha.insertCell(1);                 novaCelula.className = "color_td";         novaCelula.align = "left";         novaCelula.innerHTML = "<input id='adicional'  type='text' style=' width:200px; height:25px; margin:0 10px 0 0'/><label style='margin:0 10px 0 0'>Valor R$</label><input type='text' style=' width:100px; height:25px;'/><input type='button' id='apagar' value='' onclick='deleteRow(this.parentNode.parentNode.rowIndex)' />";       }         </script> <form>   <table id="del"  width="850" border="0" cellspacing="5">       <tbody id="add"  width="880" border="0" cellspacing="5">      <tr>     <td class="color_td1"><label class="titulo">Adicionais:</label></td>     <td class="color_td">     <input id="adicional"  type="text" style=" width:200px; height:25px; margin:0 10px 0 0"/>     <label style="margin:0 10px 0 0">Valor R$</label><input type="text" style=" width:100px; height:25px;"/>     <input type="button" id='incluir' value='' onclick='adiciona()' />     </td>   </tr></tbody>   </table> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17587
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar input file

10-12-2011 13:13

blz.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 396
Nome: João Paulo
Descrição do site: Site de Ofertas de Produtos da cidade
Sexo: Masculino
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

11-12-2011 16:36

ei web sera que teria como me ajudar com o codigo acima ????
presiso criar limitação de add os input files e pegar nos campos o que eu digitar! teria como ??/ me ajudar

so usando esse escript colloca ele com um limite para adicionar e um php em baixo com echo para puxa oque eu digitar!

a nao ser que tu tenha um input file que adicione e se quiser vc delete. pq o primeiro botao o unico que aparece ele adiciono os outros que aparece junto com os campos ao adiciona e para deleta akele campo adicionado.
vc teria algo ai ou poderia me ajudar com esse ?
ficarei grato se puder me ajudar
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado