Manpreet Oberoi Manpreet Oberoi - 2 months ago 8
Javascript Question

retrieving value through fetch (sending values from javascript to php file)

I'm very new to fetch and don't know Ajax.

I'm trying to send data from JavaScript file (node.js server) to PHP file(Apache server).

I'm sending 2 JSON values through JavaScript fetch as "a" and "b".

my code looks like this.

fetch('http://localhost/react_task/react-webpack-boilerplate/php/api.php', {
method: 'post',
body: JSON.stringify({
a: 2,
b: 1
})
}) .then(function(response) {
if (response.status >= 200 && response.status < 300) {
return response.text()
}
throw new Error(response.statusText)
})
.then(function(response) {
console.log(response);
})


Can somebody tell me how to retrieve value of a and b in my PHP file?
I'm working with react.js

Answer

Because you’re passing a JSON blob via a POST request, you’ll need to decode the JSON before attempting to read the data in it. You should also use PHP’s Filter Functions to safely retrieve user input.

Here’s some sample code (untested):

<?php
$input = file_get_contents('php://input');
$input = json_decode($input);
$filtered_a = filter_var($input->a, FILTER_SANITIZE_NUMBER_INT);
$filtered_b = filter_var($input->b, FILTER_SANITIZE_NUMBER_INT);

echo "Safely received numeric inputs: a: {$filtered_a} b: {$filtered_b}";
?>

More details on the how and why of using the filter functions can be found in the introduction page of the documentation.