Ir para conteúdo

POWERED BY:

Arquivado

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

klawdyo

Attach File igual ao Gmail (Anexar arquivos igual ao Gmail)

Recommended Posts

O código abaixo simula a função de anexar arquivos do gmail.

<link href="../css.styles.css" rel="stylesheet" type="text/css"><style>	.EscondeDiv{display:none}</style>	<script type="text/javascript">	var form_count = 0;	var form_count2 = 0;	function AddField()	{		var new_spanmsg = document.createElement('span');		new_spanmsg.setAttribute('id','Up' + form_count);		document.getElementById('content').appendChild(new_spanmsg);		var new_attachment = document.createElement('input');		new_attachment.setAttribute('id', 'child_attachment_' + form_count);		new_attachment.setAttribute('type', 'file');		new_attachment.setAttribute('name', 'Arquivo['+form_count+']');		document.getElementById('Up'+form_count).appendChild(new_attachment);		document.getElementById('child_attachment_' + form_count).className="EscondeDiv";		document.getElementById('child_attachment_' + form_count).click();		var new_text = document.createElement('span');		new_text.setAttribute('id','child_attachment_text_' + form_count);		new_text.innerHTML = ' <a class=Links href="javascript:DelField(' + form_count + ');">remover</a><br />';		var new_spantext = document.createElement('span');		new_spantext.setAttribute('id','Link' + form_count);		document.getElementById('content').appendChild(new_spantext);		document.getElementById('content').appendChild(new_text);						if(document.getElementById('child_attachment_' + form_count).value!='')		{			document.getElementById('Link' + form_count).innerHTML = "<b>"+document.getElementById('child_attachment_' + form_count).value+"</b>";}else{DelField(form_count);}		form_count++;		form_count2++;		document.getElementById('more').innerHTML = 'Procurar outro arquivo';	}	function DelField(remove_form_num)	{		document.getElementById('content').removeChild(document.getElementById('Up' + remove_form_num));		document.getElementById('content').removeChild(document.getElementById('Link' + remove_form_num));		document.getElementById('content').removeChild(document.getElementById('child_attachment_text_' + remove_form_num));		form_count2--;		if (form_count2 == 0)		{			document.getElementById('more').innerHTML = 'Procurar arquivo';		}	}	</script></head>	<form action="" method="get" enctype="multipart/form-data"  name="a" target="">		<span id="content"></span>	</form>	<p><a id="more" class="Links" onclick="AddField();">Procurar arquivo</a></p><p><a href="attach%20likes%20gmail.php">Iniciar</a></p><p>   <input type="button" onClick="document.a.submit()" name="submit" value="Upload"></p><?print_r($_FILES); // Esse array retornaria os detalhes dos arquivosprint_r($_GET); // Esse array retornaria todos os valores passados via GET.?>

Só que tem um problema: a SPAN "content" é onde ficará as INPUT FILE escondidas que enviarão os arquivos. Eu a coloquei dentro da tag FORM no html da página. Mas não tá dando certo, ela não tá enviando os arquivos para o script de upload, no exemplo acima, eu envio via GET e recebo no outro lado com PHP pra testar de veio algum valor, e não chegando nada. Isso leva a crer que, mesmo o DIV content estar dentro de FORM, mas na hora do JS montar os dados, ele não inclui tudo isso dentro do mesmo. Analisem, e tirem as suas conclusões, senhores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Klawdyo, essa maneira de anexar arquivos é muito legal, ficou fera. Mas não roda no Mozila. Acho que o Mozila não entende o método .click(), você sabe como eu faço pra rodar no Mozila.Outra coisa, o que tem dentro da sua classe Links que você utiliza, não sou muito bom em CSS.você pode me ajudar?Valew.

O código abaixo simula a função de anexar arquivos do gmail.

<link href="../css.styles.css" rel="stylesheet" type="text/css"><style>	.EscondeDiv{display:none}</style>	<script type="text/javascript">	var form_count = 0;	var form_count2 = 0;	function AddField()	{		var new_spanmsg = document.createElement('span');		new_spanmsg.setAttribute('id','Up' + form_count);		document.getElementById('content').appendChild(new_spanmsg);		var new_attachment = document.createElement('input');		new_attachment.setAttribute('id', 'child_attachment_' + form_count);		new_attachment.setAttribute('type', 'file');		new_attachment.setAttribute('name', 'Arquivo['+form_count+']');		document.getElementById('Up'+form_count).appendChild(new_attachment);		document.getElementById('child_attachment_' + form_count).className="EscondeDiv";		document.getElementById('child_attachment_' + form_count).click();		var new_text = document.createElement('span');		new_text.setAttribute('id','child_attachment_text_' + form_count);		new_text.innerHTML = ' <a class=Links href="java script:DelField(' + form_count + ');">remover</a><br />';		var new_spantext = document.createElement('span');		new_spantext.setAttribute('id','Link' + form_count);		document.getElementById('content').appendChild(new_spantext);		document.getElementById('content').appendChild(new_text);						if(document.getElementById('child_attachment_' + form_count).value!='')		{			document.getElementById('Link' + form_count).innerHTML = "<b>"+document.getElementById('child_attachment_' + form_count).value+"</b>";}else{DelField(form_count);}		form_count++;		form_count2++;		document.getElementById('more').innerHTML = 'Procurar outro arquivo';	}	function DelField(remove_form_num)	{		document.getElementById('content').removeChild(document.getElementById('Up' + remove_form_num));		document.getElementById('content').removeChild(document.getElementById('Link' + remove_form_num));		document.getElementById('content').removeChild(document.getElementById('child_attachment_text_' + remove_form_num));		form_count2--;		if (form_count2 == 0)		{			document.getElementById('more').innerHTML = 'Procurar arquivo';		}	}	</script></head>	<form action="" method="get" enctype="multipart/form-data"  name="a" target="">		<span id="content"></span>	</form>	<p><a id="more" class="Links" onclick="AddField();">Procurar arquivo</a></p><p><a href="attach%20likes%20gmail.php">Iniciar</a></p><p>   <input type="button" onClick="document.a.submit()" name="submit" value="Upload"></p><?print_r($_FILES); // Esse array retornaria os detalhes dos arquivosprint_r($_GET); // Esse array retornaria todos os valores passados via GET.?>
Só que tem um problema: a SPAN "content" é onde ficará as INPUT FILE escondidas que enviarão os arquivos. Eu a coloquei dentro da tag FORM no html da página. Mas não tá dando certo, ela não tá enviando os arquivos para o script de upload, no exemplo acima, eu envio via GET e recebo no outro lado com PHP pra testar de veio algum valor, e não chegando nada. Isso leva a crer que, mesmo o DIV content estar dentro de FORM, mas na hora do JS montar os dados, ele não inclui tudo isso dentro do mesmo. Analisem, e tirem as suas conclusões, senhores.

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.