I am getting a list of data from a mysql database which I add to a select list. When the user chooses an option I want to get the ID from the selected item, and use it to reference the index of my results array, like this:
echo $results[$id]['fruit'];
I retrieved the data from the database using $results = $stmt->fetchAll(PDO::FETCH_UNIQUE) so each id of the select list is the primary key of the record.
So I read that I can use AJAX to get the value of the selected item and send it back as a POST variable which I can then access in PHP. However when I go to print this variable I get nothing.
if(isset($_POST['id']))
{
    $id = $_POST['id']; 
    echo $id; //prints nothing
}
Here is my code:
<html>
<head>
    <script
    src="https://code.jquery.com/jquery-3.3.1.min.js"
    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous">
    </script>
    <script>
        function listChange() {
            var recID = document.getElementById("fruits").value;
            $.ajax({
                method: 'POST',
                data: {'id' : recID},
                dataType: "json",
                success: function(response)
                {
                    console.log(response);
                }
            });
        }
    </script>   
</head>
<body>
    Fruits
    <select id="fruits" name="fruits" onchange="listChange()">
        <option value="0">Apple</option>
        <option value="1">Pear</option>
        <option value="2">Watermelon</option>
        <option value="3">Orange</option>
    </select>
    <br/><br/>
    My Fruit <input type="text" id="myfruit">
    <?php
    if(isset($_POST['id']))
    {
        $id = $_POST['id']; 
        echo $id;  //does not print however post is working if you look in firefox -> web developer -> developer toolbar -> network
        //the id will be used to reference a variable 
        //$results[$id]['fruit'] which I got 
        //from a database like this 
        //$results = $stmt->fetchAll(PDO::FETCH_UNIQUE);
        //this value will set the text field myfruit
    }
    ?>
</body>
</html>