Adicionar input file

Fórum para dúvidas sobre JavaScript, ECMAScript, AJAX, XML e jQuery.

Moderador: web

responder a dúvida

Adicionar input file

Mensagem por web Offline » Ter Jul 03, 2007 5:30 pm


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[]">

<!-- id é o número de inputs a ser criado //-->
<input type="button" value="adicionar campos" id="3" onclick="cria(this.id)">

<div id="campos" style="width:100px;"></div>
<input type="submit">

</form>



detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 3:47 pm

ta eu fiz algumas alterações no script para oque eu necessitava
Código: Selecionar todos
<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!!!

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 3:58 pm

Seria isso?

Código: Selecionar todos
<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>


detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 4:54 pm

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????


Código: Selecionar todos
<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>

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


detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 5:10 pm

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[]');

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 5:46 pm

Código: Selecionar todos
<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>

<?
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?????

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 5:55 pm

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 ????

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 5:58 pm

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

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

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 6:37 pm

mas e o qt vai ir onde? pq eu presiso de diferenciamento nos campos????

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 7:08 pm

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

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 9:11 pm

poderia me dar um exemplo de como fazer isso????

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 9:53 pm

Você quer obter o name do input ou os valores?

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 10:26 pm

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[]"

Código: Selecionar todos
<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];
}}?>


detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Adicionar input file

Mensagem por web Offline » Ter Nov 22, 2011 10:58 pm

Se baseia nesse exemplo

Código: Selecionar todos
<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>";
}
}
?>


detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Adicionar input file

Mensagem por JP.BattleKilL Offline » Ter Nov 22, 2011 11:06 pm

mas eu presiso do gerador de texfield o script.
a funçao como eu faço para usar a funçao tb ?????

detalhes...


JP.BattleKilL
VETERANO
VETERANO
Mensagens: 170
Registrado em: Seg Set 12, 2011 11:53 am
Localização: Bahia Luis Eduardo Magalhães

Próximo

responder a dúvida

Voltar para Javascript, XML e AJAX

Quem está online

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

cron