Question

I am submitting a form using ajax. Then it is processed in PHP, and in the response i get the whole PHP/HTML code back. What is the right method to send back a "response" as variables from the PHP?

My JS

$.ajax({
    url: 'index.php',
    type: 'post',
    data: {
        "myInput" : $('#myInput').val(), 
    },
    success: function(response) { 
        if(!alert(response)) {
        // do something
        }
    }
});

and my PHP simply accepts the posted Input value and manipulates it:

if (isset($_POST["myInput"])) {
    // doing something - and I want to send something back
}
Était-ce utile?

La solution

Just echo and exit:

if (isset($_POST["myInput"]))
{
    // doing something - and I want to send something back
    exit('Success');
}

Then in your JS:

success: function(response) { 
    if (response == 'Success') {
       // do something?
    }
}

For example:

test.php single page html + php post handler

<?php

// Post Handler
if (count($_POST))
{
    // do something with posted data
    echo "You Posted: \r\n";
    print_r($_POST);
    exit();
}

// dummy data outside of the post handler, which will never be sent in response
echo "Test Page";

?>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">

$(document).ready(function()
{
    $.post('test.php', { "hello": "world" }, function(result) {
        alert(result);
    });
});

</script>

Outputs:

enter image description here

Autres conseils

$.ajax({
    url: 'index.php', // change your url or give conditional statement to print needed code
    type: 'post',
    data: {
        "myInput" : $('#myInput').val(), 
    },
    success: function(response) {
        if(!alert(response)) {
        // do something
        }
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top