Estoy tratando de enviar entradas de usuario con Fetch API a mi archivo php usando el método POST. Probé esto con XMLHttprequests y no tuve ningún problema, pero ahora quiero comenzar a usar Fetch API. Cuando uso el método GET para enviar la variable a la matriz $_SESSION, no tengo ningún problema y puedo repetirla. Cuando uso el método POST, devolvería siempre "Clave de matriz indefinida" para las variables.
Soy nuevo en esto, así que cualquier ayuda es muy apreciada.
PHP
<?php // a sessions start session_start(); // session variable $number1 = $_POST['n1']; $number2 = $_POST['n2']; $_SESSION['numbers'] = $_POST; echo $_SESSION['numbers']['n1']; echo $_SESSION['numbers']['n2']; ?>JS
document.getElementById('btn').addEventListener('click', addNumbers); function addNumbers(){ var input1 = document.getElementById('one').value; var input2 = document.getElementById('two').value; fetch('serv.php',{ method:"POST", body:'n1='+input1+'&n2='+input2, header: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then((response) => response.text()) .then((data) => { output.innerHTML += data; }) }Sé que debería verificar si la variable de sesión está vacía o isset, pero la eliminé solo por motivos de visibilidad.
Una salida print_r($_POST) es:
Array ( )Un print_r($_SESSION) es:
Array ( [number2] => [num1] => [num2] => [numbers] => Array ( ) )