Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
Unable to parse JSON sent via Javascript XMLHttpRequest in PHP form handler

Javascript logic:

const xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if (xhr.status == 200){
                    console.log('xhr.readyState: ' + xhr.readyState);
                    console.log('xhr.status: ' + xhr.status);
                    console.log('xhr.responseText: ' + xhr.responseText);
                    alert("Thank you for connecting with me, " + $firstName + ". I'll be in touch soon via email to " + $email + ".");
                    document.getElementById('contact_form').reset();
                    enableSubmitButton();
                }
                if(xhr.status != 200){
                    console.log('xhr.status: ' + xhr.status);
                    alert('Apologies, ' + $firstName + ', there was an error sending your message.');
                }
            }
        };
        // build JSON for form handler
        const prospect = {
            first_name: $firstName, 
            last_name: $lastName, 
            email: $email, 
            project_description: $projectDescription
        };
        const prospectJson = JSON.stringify(prospect);
        // console.log(prospectJson);
        
        xhr.open('get', 'inc/contact_form_handler.php?data=' + prospectJson, false);
        xhr.send();

Console output subsequent to HTML form submission and XMLHttpRequest:

xhr.readyState: 4
xhr.status: 200
xhr.responseText: Array
(
    [data] => {"first_name":"FirstNameTest","last_name":"LastNameTest","email":"test@test.com","project_description":"This is my example project description."}
)

The problem is all of the PHP variable values are empty subsequent to the following logic:

/* get form data JSON */
    $prospectArray = $_GET;
    print_r($prospectArray);
    $arr = json_decode($prospectArray, true);
    // assign values to local vars based on json values
    $firstName = $arr["first_name"];
    $lastName = $arr["last_name"];
    $email = $arr["email"];
    $projectDescription = $arr["project_description"];

Any guidance, insight or solution is very much appreciated, thank you.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda