gh0st
gh0st

Reputation: 1714

Trouble w/ Form Processing using jQuery + PHP

I'm having the hardest time getting a simple form to process using jQuery and PHP. I've tried getting the data via $_POST, $_GET, and $_REQUEST but I guess I'm missing a simple line of code or a complete process altogether.

app.js

$(document).ready(function() {
    $('#sucMsg').hide();
    $('#errMsg').hide();
    $('form').on('submit', function(event) {
        event.preventDefault();
        var form = $(this);
        alert(form.serialize());
        $.ajax(form.attr('action'), {
            type: 'POST',
            contentType: 'application/json',
            dataType: 'html',
            data: form.serialize(),
            success: function(result) {
                form.remove();
                $('#sucMsg').append(result);
                $('#sucMsg').fadeIn();
                console.log(result);
            },
            error: function(xhr, ajaxOptions, thrownError) {
                console.log(thrownError);
                $('#errMsg').append(thrownError);
                $('#errMsg').fadeIn();
            }

        });
    });
});

formProcess.php

<?php
    if ($_POST) {
        echo "Posted something.";
    } elseif ($_GET) {
        echo "Getted something.";
    } else {
        echo "Nothing is working...";
    }
    $tagNumberPost = $_POST['inputTagNumber'];
    $pricePost = $_POST['inputPrice'];
    $makePost = $_POST['inputMake'];

    $tagNumberRequest = $_REQUEST['inputTagNumber'];
    $priceRequest = $_REQUEST['inputPrice'];
    $makeRequest = $_REQUEST['inputMake'];

    if (isset($_REQUEST['inputTagNumber'])) {
        echo '$_REQUEST works...\n';
    } elseif (isset($_POST['inputTagNumber'])) {
        echo '$_POST works...\n';
    } elseif (isset($_GET['inputTagNumber'])) {
        echo '$_GET works...\n';
    } else {
        echo "Nothing is working...";
    }

    echo "<br/>";
    echo "Tag number: " . $tagNumber . "<br/>\n";
    echo "Make: ".$makePost . "<br/>\n";
    echo "Price: " . $pricePost . "<br/>\n";
?>

What I'm expecting to get back is the all the echo's in my formProcess.php to print out in my #sucMsg div.

Upvotes: 2

Views: 52

Answers (1)

Kevin
Kevin

Reputation: 41885

Why are you setting your contentType: as application/json? You do not need that. Remove it.

contentType: 'application/json', // remove this line

Just leave it to its default as application/x-www-form-urlencoded if your request is POST.

And in your PHP, $tagNumber is undefined.

if (isset(
    $_POST['inputTagNumber'], 
    $_POST['inputTagNumber'],
    $_POST['inputMake'],
)) {

    $tagNumber = $_POST['inputTagNumber']; // define tagNumber
    $pricePost = $_POST['inputPrice'];
    $makePost = $_POST['inputMake'];

    echo "<br/>";
    echo "Tag number: " . $tagNumber . "<br/>\n";
    echo "Make: ".$makePost . "<br/>\n";
    echo "Price: " . $pricePost . "<br/>\n";

}

Upvotes: 1

Related Questions