Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 2 de 2

Tópico: Submit vs button

  1. #1

    Avatar de Brutallus
    Data de Ingresso
    Jan 2010
    Localização
    Itapuranga
    Idade
    30
    Posts
    215
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    17

    Padrão Submit vs button

    Olá pessoal, após alguns anos afastado voltei a brincar com php...
    Mas estou tendo um pequeno problema com um formulário. Usando ajax não estou conseguindo receber os dados do formulário por meio do botão submit, apenas usando o button que estou conseguindo receber os dados do formulário.
    Se alguém que já teve esse problema ou saiba como resolve-lo puder me ajudar agradeço.

    Script ajax:

    Código PHP:
    function BuscaElementosForm(idForm)
    {  
        var 
    elementosFormulario document.getElementById(idForm).elements;  
        var 
    qtdElementos elementosFormulario.length;  
        var 
    queryString "";  
        var 
    elemento;  
            
    this.ConcatenaElemento = function(nome,valor)
            {   
                if (
    queryString.length 0)
                {   
                    
    queryString += "&"
                }  
                
    queryString += encodeURIComponent(nome) + "=" encodeURIComponent(valor);  
            };  

            for (var 
    0qtdElementosi++)
            {   
                
    elemento elementosFormulario[i];  
                if (!
    elemento.disabled)
                {   
                    switch(
    elemento.type)
                    {   
                        case 
    'text': case 'email': case 'password': case 'hidden': case 'textarea':   
                            
    this.ConcatenaElemento(elemento.name,elemento.value);  
                            break;  
                        case 
    'select-one':  
                            if (
    elemento.selectedIndex >= 0)
                            {  
                                
    this.ConcatenaElemento(elemento.name,elemento.options[elemento.selectedIndex].value);  
                            }  
                            break;  
                        case 
    'select-multiple':  
                            for (var 
    0elemento.options.lengthj++)
                            {  
                                if (
    elemento.options[j].selected)
                                {  
                                    
    this.ConcatenaElemento(elemento.name,elemento.options[j].value);  
                                }  
                            }  
                            break;  
                        case 
    'checkbox': case 'radio':  
                            if (
    elemento.checked)
                            {  
                                
    this.ConcatenaElemento(elemento.name,elemento.value);  
                            }  
                            break;  
                    }  
                }  
            }
         return 
    queryString;  
    }

    function 
    extraiScript(texto)
    {  
        var 
    inipos_srcfimcodigotexto_pesquisa;  
        var 
    objScript null;    
        
    texto_pesquisa texto.toLowerCase()    
        
    ini texto_pesquisa.indexOf('<script'0)

        while (
    ini != -1)
        {   
            var 
    objScript document.createElement("script");    
            
    pos_src texto_pesquisa.indexOf(' src'ini)    
            
    ini texto_pesquisa.indexOf('>'ini) + 1;    
            if (
    pos_src ini && pos_src >= 0)
            {
                
    ini pos_src 4;  
                
    fim texto_pesquisa.indexOf('.'ini)+4;  
                
    codigo texto.substring(ini,fim);  
                
    codigo codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");    
                
    objScript.src codigo;  
            }
            else
            {
                
    fim texto_pesquisa.indexOf('</script>'ini);    
                
    codigo texto.substring(ini,fim);    
                
    objScript.text codigo;  
             }    
        
    document.body.appendChild(objScript);   
        
    ini texto.indexOf('<script'fim);    
        
    objScript null;  
        }


    function 
    returnQuery(form)
    {
        var 
    elements form.elements;
        var 
    fields null;
        for (var 
    0elements.lengthi++)
        {
            if ((
    name elements[i].name) && (value elements[i].value))
            {
                if(
    == 0)
                {
                    
    fields name "=" encodeURIComponent(value);
                }
                else
                {
                    
    fields += "&"+(name "=" encodeURIComponent(value));
                }
            }
        }
        return 
    fields;
    }

    function 
    requestPage(urldivtipocampos)
    {
        var 
    ajax null;

            if(
    window.ActiveXObject)
            {
                
    ajax = new ActiveXObject('Microsoft.XMLHTTP');
            }
            else if(
    window.XMLHttpRequest)
            {
                
    ajax = new XMLHttpRequest();
            }


            if(
    ajax != null)
            {
                var 
    cache = new Date().getTime()
                
    ajax.open(tipourl+'&cache='+cachetrue);
                
    ajax.onreadystatechange = function status()
                {
                    if(
    ajax.readyState == 4)
                    {
                        if(
    ajax.status == 200)
                        {
                            
    document.getElementById(div).innerHTML ajax.responseText;
                            var 
    texto unescape(ajax.responseText);
                            
    extraiScript(texto);
                        }
                }
                else
                {
                    
    document.getElementById(div).innerHTML '<center><img src="templates/store/images/ajax.gif" /></center>';
                }
            }
            
            if(
    tipo == "POST")
            {
                
    ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");
                
    ajax.setRequestHeader("Cache-Control""no-store, no-cache, must-revalidate");
                
    ajax.setRequestHeader("Cache-Control""post-check=0, pre-check=0");
                
    ajax.setRequestHeader("Pragma""no-cache");
                
    ajax.send(campos); 
            }
            else
            {
                
    ajax.send(null);
            }
        }

    Formulário:

    Código PHP:

    <form id="newsletter" method="POST">
    <
    input type="email" name="email" placeholder="Email" required>
    <
    input type="submit" value="" onClick="requestPage('?pagAjax=general&action=newsletter','resultNewsletter','POST',BuscaElementosForm('newsletter'));" />
    </
    form

  2. #2

    Avatar de iFreeHP
    Data de Ingresso
    Apr 2016
    Localização
    Home
    Posts
    30
    Agradecido
    59
    Agradeceu
    11
    Peso da Avaliação
    0

    Padrão

    ja tentou tirar o onClick do input, e substituir por action no form?

    ficando:

    Código PHP:
    <form id="newsletter" method="POST" action="javascript: requestPage('?pagAjax=general&action=newsletter','resultNewsletter','POST',BuscaElementosForm('newsletter'));"
    <
    input type="email" name="email" placeholder="Email" required
    <
    input type="submit" value=""/> 
    </
    form
    não tenho certeza. mas acho que isso resolve seu problema.

    caso não resolva, use o button e coloque um input submit como hidden.
    Última edição por iFreeHP; 19-06-2017 às 02:14 PM.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Tutorial| [Iniciante]Abrir Sites Pelo Label ou Button
    Por FusioN no fórum Delphi
    Respostas: 1
    Último Post: 27-03-2012, 01:25 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •