Ir para conteúdo
Fórum Script Brasil
  • 0

Objetos criado por javascript DOM - passagem de variaveis


brunocasado

Pergunta

Galera, estou com 1 problema que não consigo resolver.

Tenho um formulario que ao clicar em um radio ele me cria um input file onde o formulario acessara um programa php que irá jogar os arquivos selecionados no servidor... pois bem quando o campo é fixo funciona perfeitamente, porém quando eu crio o campo dinamicamente por DOM ou se uso innerHTML o valor pelo post não é atribuido... tanto que se eu uso um isset ele retorna false... só que isso acontece apenas no FF e no IE funciona perfeitamente... segue o codigo das paginas

HTML PARTE DO JAVA E FORM

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";
    document.getElementById('cadastro').deleteRow(12);
    }
}
function resetaCheck(){
document.getElementsByTagName('tipo_cadastro').checked = true;
}
resetaCheck();
</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="java script:TipoCadastro(this.value)" type="radio" value="1" checked />
        Jurídico:
        <input name="tipo_cadastro" onchange="java script: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="java script: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>
Parte do php
<?php


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 não 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");


// 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\" />";

//}
?>

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...