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