Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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);
}
});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:
Carregando comentários...