Jump to content


Photo

Upload De Multiplas Imagens


  • Faça o login para participar
23 replies to this topic

#1 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 06/10/2007, 00:52

eu sei fazer todo o sistema do upload de multiplos arquivos, na verdade, minha duvida é mais quanto a ajax, mas ninguem na parte de ajax responde, gostaria de saber o seguinte, quero fazer um anexador de arquivos, igual ao gmail. "Como assim?" bem simples.. quero q no meu formulario tenha apenas 1 campo: Arquivos [ ] .... e a baixo dele tenha: adicionar outro arquivos

assim, podendo adicionar ate 5 arquivos ou qlqr numero de arquivos em 1 pagina, sem precisar adicionar de 1 em 1.. queria apenas isso
um ajax que quando eu clickasse em "adicionar outro arquivos"
ele escrevesse o campo:

"Arquivo: <input type="file" name="arquivo[]"><br>"

nunca trabalhei com ajax, entao.. ja viu né..
MSN: fabiovaz arroba gmail.com

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 06/10/2007, 05:40

Não precisa necessariamente ser Ajax, simplesmente Javascript você faz isso.

Para isso, utilize createElement.

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 08/10/2007, 14:17

Não precisa necessariamente ser Ajax, simplesmente Javascript você faz isso.

Para isso, utilize createElement.

Flws...
(ok2)


tu nao tem algo pronto que sirva como exemplo nao?
MSN: fabiovaz arroba gmail.com

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 08/10/2007, 14:38

Aliás, com createElement não. Veja uma função que você pode usá-la em um botão "Adicionar outro anexo":
<script type="text/javascript">
function addFileField()
{
	document.getElementById("fields").innerHTML += "<input type=\"file\" name=\"file[]\" /><br />";
}
</script>

Onde o id fields que você vai jogar os inputs, eu fiz com uma <div>.

Flws...
(ok2)Até mais

Edição feita por: Paulo André, 08/10/2007, 14:39.

Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 08/10/2007, 15:48

opa deu certo..


<script type="text/javascript">
<script type="text/javascript">
function addFileField()
{
	document.getElementById("div_file").innerHTML += "<input type=\"file\" name=\"imagem[]\" size=\"35\">";
}
</script>

<li><div id="div_file"><input type="file" name="imagem[]" size="35"></div></li>
	  <li onclick="addFileField()">Adicionar outra Imagem</li>

porem estou com um problema, quando clicko para adicionar a otura imagem, o campo de cima perde o valor atual... queria manter o valor...


tipo ele perde os valores, seu eu escolhe 1 arquivo, e deopis clicko em adicionar outro arquivo...

Edição feita por: SlyX, 08/10/2007, 16:01.

MSN: fabiovaz arroba gmail.com

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 08/10/2007, 16:00

Opa... apaga tudo rs... :D
Faz assim:
function addFileField()
{
	var ff = document.createElement("input");
	ff.type = "file";
	ff.name = "file[]";
	document.frm.appendChild(ff);
}
Que irá adicionar em um form de nome frm seguindo meu exemplo.

Foi mal, depois que pensei melhor. ;)

******* EDITADO *******
Para a quebra de linha você pode adicionar esta linha:
document.frm.appendChild(document.createElement("br"));

Flws...
(y)Até mais

Edição feita por: Paulo André, 08/10/2007, 16:09.

Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 08/10/2007, 16:25

funcionou, mas nao to conseguindo ajustar ele dentro da li, ele esta aparecendo slto na tela ehhehe
MSN: fabiovaz arroba gmail.com

#8 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 08/10/2007, 16:30

Cuma? :huh:

Desenha ai pra mim porque não entendi não.. rs... :DAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#9 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 08/10/2007, 16:46

ok.. tirei umas coisas q achei inutil, a questao é:
o input file, esta dentro de um LI... gostaria que os outros que aparecem, aparecessem dentro do LI, entende?

no metodo antigo eu poderia fazer:
document.getElementById("fields").innerHTML += "<li><input type=\"file\" name=\"file[]\" /></li>";

<?
session_start();
require "../include/topo.inc.php";
?>

<script type="text/javascript">
function addFileField()
{
	var ff = document.createElement("input");
	ff.type = "file";
	ff.name = "file[]";
	document.form1.appendChild(ff);
	document.form1.appendChild(document.createElement("br"));
}
</script>

<script src="../include/data.js" type="text/javascript"></script>

<form name="form1" id="form1" enctype="multipart/form-data" action="editar.php?tipo=<?=$acao;?>" method="post">
<div id="en">
	<ul>
	  <li><h2>Imagem:</h2></li>
	  <li><div id="div_file"><input type="file" name="imagem[]" size="35"></div></li>
	  <li><a onclick="addFileField()">Adicionar outra Imagem</a></li>
	</ul>
</div>

<div id="botao">
	<input type="submit" class="buttom" value="Salvar" />
</div>

</form>

<?
  include("../include/rodape.inc.php");
?>

Edição feita por: SlyX, 08/10/2007, 16:46.

MSN: fabiovaz arroba gmail.com

#10 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 08/10/2007, 16:51

Crie o <li> da mesma forma, com o createElement:
function addFileField()
{
	var li = document.createElement("li");
	var ff = document.createElement("input");
	ff.type = "file";
	ff.name = "file[]";
	document.frm.appendChild(li);
	li.appendChild(ff);
}

Flws...
(ok2)Até mais

Edição feita por: Paulo André, 08/10/2007, 16:52.

Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#11 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 08/10/2007, 17:18

Acho que vai dar problema de referência... você teria que dar appendChild no input na LI antes de dar o appendChild no form ...

Além do que, tem que coloca a li dentro da ul, então tem que usar ou getElementById (se ela tiver um id), ou getElementsByTagName('ul') ... ou uma mescla dos 2.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#12 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 08/10/2007, 22:20

Acho que vai dar problema de referência... você teria que dar appendChild no input na LI antes de dar o appendChild no form ...

Além do que, tem que coloca a li dentro da ul, então tem que usar ou getElementById (se ela tiver um id), ou getElementsByTagName('ul') ... ou uma mescla dos 2.



ou seja: cheguei a conclusao q nao sei nada de js =/

amiguinhos?
MSN: fabiovaz arroba gmail.com

#13 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 09/10/2007, 13:35

function addFileField()

{

	var li = document.createElement("li");

	var ff = document.createElement("input");

	ff.type = "file";

	ff.name = "file[]";

	li.appendChild(ff);

	document.getElementById('suaUL').appendChild(li);

}

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#14 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 09/10/2007, 14:50

<script type="text/javascript">
function addFileField()
{
	var li = document.createElement("li");
	var ff = document.createElement("input");
	ff.type = "file";
	ff.name = "imagem[]";
	ff.size = "35";
	li.appendChild(ff);
	document.getElementById('div_file').appendChild(li);
}
</script>



<ul id="ul_arquivo">
	  <li><h2>Imagem:</h2></li>
	  <div id="div_file">
	  <li><input type="file" name="imagem[]" size="35"></li>
	  </div>
	  <li><a onclick="addFileField()">Adicionar outra Imagem</a></li>
	</ul>


achei muito legal essa parte de "DOM" vou dar uma estudada... para iniciar bem no ajax :D

tinha ocorrido um erro no iexplorer, acho que devido a interacao com o css(ie6) ..
entao eu alterei
:D

<ul id="div_file">
	   <li>
		<input type="file" name="imagem[]" size="35">
	   </li>
	  </ul>
	  <ul>
		<li><a onclick="addFileField()">Adicionar outra Imagem</a></li>
	  </ul>

MSN: fabiovaz arroba gmail.com

#15 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 09/10/2007, 14:57

Só uma observação, ou você coloca o atributo href no link ou muda pra um button:

<a href="pagina_qualquer.htm" onclick="function();return false">Texto</a>

<!--ou-->

<button onclick="function();">Texto</button>

Da forma que você colocou gera erros porque não é nem um link (porque não tem href) e nemuma ancora (porque não tem name)... ok?!
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq