Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 50
Sexo: Masculino
Localização: Sampa/Itanhaem/Brasil
Contato:

Objeto criado por metodo DOM, nao envia variavel para PHP

30-09-2008 12:03

Galera, nao sei se está certo postar aqui mas vamos la.
tenho um formulario, que ao clicar em um botao ele cria um input file dinamicamente. bem ao apertar no botao enviar do formulario tenho um script que joga o arquivo no servidor. O que acontece é o seguinte, no IE ele manda a variavel do campo para o programa em php.... e no FIREFOX não...... ai não sei se é um possivel problema de javascript ou php. vejam os codigos.

function TipoCadastro(tipo){ if(tipo==2) { proxIndice = document.getElementById('cadastro').rows.length-7; novaLinha = document.getElementById('cadastro').insertRow(proxIndice); document.getElementById('cadastro').rows[2].cells[0].innerHTML = "Razão Social:" ; document.getElementById('cadastro').rows[3].cells[0].innerHTML = "CNPJ"; var novasCelulas = new Array(5); newField = document.createElement('input'); newField.type = 'file'; newField.name = 'arquivo[]'; for(var i=0;i<novasCelulas.length;i++) novasCelulas[i] = novaLinha.insertCell(i); novasCelulas[1].appendChild(newField); }else{ document.getElementById('cadastro').rows[2].cells[0].innerHTML = "Nome:" ; document.getElementById('cadastro').rows[3].cells[0].innerHTML = "CPF"; } }

PHP
//UPLOAD// if( isset( $_POST['enviar'] ) ) { $pathToSave = 'C:\Documents and Settings\Bruno\Meus documentos\Sites\Eduardo\uploads\\'; // A variavel $_FILES é uma variável do PHP, e é ela a responsável // por tratar arquivos que sejam enviados em um formulário // Nesse caso agora, a nossa variável $_FILES é um array com 3 dimensoes // e teremos de trata-lo, para realizar o upload dos arquivos // Quando é definido o nome de um campo no form html, terminado por [] // ele é tratado como se fosse um array, e por isso podemos ter varios // campos com o mesmo nome $i = 0; $msg = array( ); $arquivos = array( array( ) ); foreach( $_FILES as $key=>$info ) { foreach( $info as $key=>$dados ) { for( $i = 0; $i < sizeof( $dados ); $i++ ) { // Aqui, transformamos o array $_FILES de: // $_FILES["arquivo"]["name"][0] // $_FILES["arquivo"]["name"][1] // $_FILES["arquivo"]["name"][2] // $_FILES["arquivo"]["name"][3] // para // $arquivo[0]["name"] // $arquivo[1]["name"] // $arquivo[2]["name"] // $arquivo[3]["name"] // Dessa forma, fica mais facil trabalharmos o array depois, para salvar // o arquivo $arquivos[$i][$key] = $info[$key][$i]; } } } $i = 1; // Fazemos o upload normalmente, igual no exemplo anterior foreach( $arquivos as $file ) { // Verificar se o campo do arquivo foi preenchido if( $file['name'] != '' ) { $arquivoTmp = $file['tmp_name']; $arquivo = $pathToSave.$file['name']; if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } } else { $msg[$i] = sprintf('O arquivo %d nao foi preenchido',$i); } $i++; } // Imprimimos as mensagens geradas pelo sistema foreach( $msg as $e ) { printf('%s<br>', $e); } } include "../../conexao/conexao_mysql.inc"; import_request_variables("p"); echo $_FILES['name']; // Cadastro no banco// //$chave = md5($email); //$insere_sql = "INSERT INTO users_temp(tipo_cadastro,nome_razao,cpf_cnpj,cep,endereco,n_end,municipio,uf,ddd,telefone,celular,login,senha,email,chave) VALUES ('$tipo_cadastro','$nome_razao','$cpf_cnpj','$cep','$endereco','$n_end','$municipio','$uf','$ddd','$telefone','$celular','$username','$password','$email','$chave')"; //$insere_query = mysql_query($insere_sql) or die(mysql_error()); //if(mysql_affected_rows()==1){ //echo "Seu cadastro foi efetuado com Sucesso!, em alguns instantes receberá um email de confirmação.<br> Aguarda você será redirecionado para pagina principal <meta http-equiv=\"refresh\" content=\"3;URL=cadastro.html\" />"; //} ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17410
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Objeto criado por metodo DOM, nao envia variavel para PHP

30-09-2008 13:35

Como seu script está incompleto, ou seja, não dá para jogar em um documento e rodar já mostrando o resultado, acesse

http://www.codigosnaweb.com/forum/Adici ... 3_871.html

Troca o form action lá por esse

<form action="" method="POST" enctype="multipart/form-data">

E o input submit por esse

<input type="submit" name="envio">

Com isso use o script abaixo para pegar os arquivos upados
<?php if($_POST['envio']) { foreach($_FILES['arquivo']['name'] AS $campo) { echo $campo."<br>"; } } ?>

0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 50
Sexo: Masculino
Localização: Sampa/Itanhaem/Brasil
Contato:

Objeto criado por metodo DOM, nao envia variavel para PHP

30-09-2008 13:59

descupem ta ai a parte do javascript completo.
<script language="javascript"> function TipoCadastro(tipo){ if(tipo==2) { proxIndice = document.getElementById('cadastro').rows.length-7; novaLinha = document.getElementById('cadastro').insertRow(proxIndice); document.getElementById('cadastro').rows[2].cells[0].innerHTML = "Razão Social:" ; document.getElementById('cadastro').rows[3].cells[0].innerHTML = "CNPJ"; var novasCelulas = new Array(5); newField = document.createElement('input'); newField.type = 'file'; newField.name = 'arquivo[]'; for(var i=0;i<novasCelulas.length;i++) novasCelulas[i] = novaLinha.insertCell(i); novasCelulas[1].appendChild(newField); }else{ document.getElementById('cadastro').rows[2].cells[0].innerHTML = "Nome:" ; document.getElementById('cadastro').rows[3].cells[0].innerHTML = "CPF"; } } </script> <table id="cadastro"> <form name="form" action="cadastro.php" method="post" enctype="multipart/form-data"> <tr> <td width="99"></td> <td width="171">Cadastro de informações</td> </tr> <tr> <td></td> <td nowrap="nowrap">Pessoa Física: <input name="tipo_cadastro" onchange="javascript:TipoCadastro(this.value)" type="radio" value="1" checked /> Jurídico: <input name="tipo_cadastro" onchange="javascript:TipoCadastro(this.value)" type="radio" value="2" /></td> </tr> <tr> <td id="nome">Nome:</td> <td><input name="nome_razao" /></td> </tr> <tr> <td id="cpf">CPF:</td> <td><input name="cpf_cnpj" /></td> </tr> <tr> <td>CEP:</td> <td><input name="cep" /></td> <td><a href="javascript:busca_cep()">Buscar CEP</a></td> <td><div id="retorno_cep"></div></td> </tr> <tr> <td>Endereço:</td> <td><input name="endereco" /></td> <td>Nº <input name="n_end" /></td> </tr> <tr> </tr> <tr> <td>Município:</td> <td><input name="municipio" /></td> </tr> <tr> <td>UF:</td> <td><input name="uf" /></td> </tr> <tr> <td>DDD:</td> <td><input name="ddd" /></td> </tr> <tr> <td>Telefone:</td> <td><input name="telefone" /></td> </tr> <tr> <td>Celular:</td> <td><input name="celular" /></td> </tr> <tr> <td></td> <td>Cadastro de Acesso:</td> </tr> <tr> <td>Login</td> <td><input name="username" /></td> <td width="224">Digite um nome de usuário válido</td> </tr> <tr> <td>Senha</td> <td><input name="password" type="password" /></td> </tr> <tr> <td>Confirmar senha</td> <td><input name="password2" type="password" /> </td> </tr> <tr> <td>Email:</td> <td><input name="email" /></td> </tr> <tr> <td>Confirmar Email</td> <td><input name="email2" /></td> </tr> <tr> <td></td> <td> <input type='submit' value='Enviar' name='enviar'></td> </tr> </form> </table>

0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 50
Sexo: Masculino
Localização: Sampa/Itanhaem/Brasil
Contato:

Objeto criado por metodo DOM, nao envia variavel para PHP

30-09-2008 16:57

Intao cara coloquei essa linha do php para tester se retornava true mas retorna false... e como se a variavel $_file nao estivece sendo passada...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17410
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Objeto criado por metodo DOM, nao envia variavel para PHP

30-09-2008 17:53

Seu script aparentemente está OK, criando o input com o nome em formato array, dá uma rodada no script que passei que é basicamente a mesma coisa e está funcionando OK.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

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