Ir para conteúdo

POWERED BY:

Arquivado

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

null2007

action="" onclick="" + jQuery + Form + PHP

Recommended Posts

Aew galera,

 

estou tendo o seguinte problema...:

 

Em um formulário de cadastro de produto, estou tentando usar o jquery.MultiFile.js p/ envio de mais de uma imagem por vez e inserir o nome no BD.

 

Acontece é que estou utilizando o jQuery p/ enviar o form pelo método $_POST. Então, não sei como fazer p/ enviar os nomes das imagens(o que no caso acredito que seria uma array), pois peguei um cód pronto e neste seta somente variáveis.. Deixa eu explicar melhor com os códigos...:

 

cadastro.php

<form id="FormCadProduto" action="javascript:func()" enctype="multipart/form-data" method="post">
     	<p>Foto(s)</p>
     	<input type="file" id="img" name="img[]" class="multi" maxlength="2" accept="jpeg|jpg|png|gif" />
     	<input type="submit" value="Cadastrar" />
</form>

 

Como poder ver, neste caso estou utilizando a forma de envio via action="javascript:func()" e method="post".

 

SCRIPT:

<script type="text/javascript">
//<![CDATA[
   	jQuery(function(jQuery){
       	jQuery("#FormCadProduto").submit(function(){

           	var img = jQuery("#img").val();
           	jQuery.post('reload.php?load=envia-cad-produto', {img: img}, function(resposta) {

           	jQuery("#status").slideDown();
               	if (resposta != false) {
                   	jQuery("#status").html(resposta);
               	} 
  	});
//]]>
</script>

 

Este Script, pega a variável e envia para o arquivo (PHP) reload.php?load=envia-cad-produto.

E neste arquivo php, vou pegar os dados e processar... Ficando assim:

reload.php?load=envia-cad-produto

<?php
  $img = $_POST["img"];
  ....
  $AllAdmin->addProduto($_POST);
?>

 

Até aí tudo bem, está funcionando tudo certinho, quando vai somente um arquivo.

O problema está no fato de que eu preciso enviar mais de um arquivo por vez. Desta forma ñ sei como fazer em js.

Então eu estava pensando em fazer da seguinte forma, levando em consideração que os dados do form eu vou inserir numa tabela e o nome das fotos em outra tabela:

 

Continuar passando as variáveis através do jQuery como está, tudo funcionando bonitinho.

E passar os dados das fotos (file) tudo via PHP. Ou seja, aí eu poderia estar fazenda seguinte forma:

cadastro.php

<form id="FormCadProduto" action="[b]reload.php?load=envia-cad-produto[/b]" onclick="[b]javascript:func()[/b]"  enctype="multipart/form-data" method="post">
     	<p>Foto(s)</p>
     	<input type="file" id="img" name="img[]" class="multi" maxlength="2" accept="jpeg|jpg|png|gif" />
     	<input type="submit" value="Cadastrar" />
</form>

Ou seja, enviaria os dados das fotos, através do action e os dados do restante do form pelo jQuery pelo onclick.

 

Aí no arquivo que receberei esses dados, posso estar fazendo da seguinte forma:

if(isset($_GET['img'])){
   	$pasta = "../fotos/";
   	foreach($_FILES["img"]["error"] as $key => $error){
       	if($error == UPLOAD_ERR_OK){
           	$tmp_name = $_FILES["img"]["tmp_name"][$key];
           	$nome = $_FILES["img"]["name"][$key];
           	$uploadfile = $pasta . basename($nome);
           	if(move_uploaded_file($tmp_name, $uploadfile)){
               	print"O arquivo ".$nome." foi enviado com sucesso.";
           	}else{
               	print"Erro ao enviar o arquivo ".$nome."!";                   	
           	}
       	}
}

 

Ou seja, fazer o foreach p/ pegar o nome dos arquivos e inseri-los no banco na outra tabela.

 

Esta é a forma que estou pensando em fazer pessoal, mas caso consiga enviar esses dados tudo pelo jQuery seria ótimo.

 

A ajuda que preciso é:

 

1º) Como posso fazer para enviar esses dados( no caso de mais de uma foto) pelo jQuery.

ou

2º Alguém que me ensine a passar os dados p/ jQuery ao invés do action, pelo onclick.

 

 

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso, o click não faz sentido. você tem q usar no evento onsubmit do formulário.

 

ajax não envia arquivos. Oque o teu MultiFile faz ? poste o link para o codigo dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, ñ é enviar arquivo.. O jQuery ali só passa as variáveis que pega do formulário pelo método $_POST...

O que eu quero, é chamar o jQuery pelo onclick ao invez do onsubmit como está funcionando agora

(action="javascript:func()").

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é possível. =)

 

você não entendeu nada doque eu disse... mas vamos lá de novo:

<input type="file" id="img" name="img[]" class="multi" maxlength="2" accept="jpeg|jpg|png|gif" />

não é possível enviar esse campo com ajax.

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.