Javascript通过AJAX变量到PHP(GET方法)

I am trying to pass a Javascript variable to a PHP file using AJAX.

I have the below Javascript code;

<script type="text/javascript">
var route_id = 'travelling-from'; //Route ID

$('#'+route_id).change(function(e) {
    //Grab the chosen value on route change
    var selectroute = $(this).val();

    $.ajax({
        type: "GET",
        url: 'ajax-getvalues.php',
        data: { selectroute : selectroute }
    });
});
</script>

In my ajax-getvalues.php, I have;

$selectroute = mysqli_real_escape_string($connection, $_GET['travelling-from']);

When I try to use $selectroute, it seems to be empty.

Do I need to add something else in order for this to work? Or have I gone wrong at some point?

When I try to use $selectroute, it seems to be empty

The AJAX request will be sent to ajax-getvalues.php with the query string:

?selectroute=somevalue

In PHP you are trying the get the value of a parameter called travelling-from, this parameter does not exist in the query string.

You need to change selectroute to travelling-from

$.ajax({
    type: "GET",
    url: 'ajax-getvalues.php?travelling-from=' + encodeURIComponent(selectroute)
});

Or of you prefer:

$.ajax({
    type: "GET",
    url: 'ajax-getvalues.php',
    data: {"travelling-from": encodeURIComponent(selectroute)}
});

This produces the query string ?travelling-from=somevalue which can now be accessed with $_GET['travelling-from']

In your example the key should be route_id instead of selectroute

<script type="text/javascript">
var route_id = 'travelling-from'; //Route ID

$('#'+route_id).change(function(e) { //Grab the chosen value on route change var selectroute = $(this).val();

var data = {};
data[route_id] = selectroute;
$.ajax({
                type: "GET",
                url: 'ajax-getvalues.php',
                data: data }
            }); </script>