如何使用php文件中的GET来获取我在.js文件中声明的变量


How can I use a GET from my php file, to get a variable that I declared in my .js file?

我制作了一些变量,其中包含在下拉菜单中选择的答案。现在我想在php文件中使用这些变量,这样我就可以对它们进行查询。但我不知道我做错了什么,所以这是我的代码。

这是我的main.js文件:

$("#slctTable").change(function(){
    var table = document.getElementById("slctTable");
    var tableSelected = table.value;
    console.log(tableSelected);
});
$("#slctField").change(function(){
    var field = document.getElementById("slctField");
    var fieldSelected = field.value;
    console.log(fieldSelected);
});
$("#slctAttribute").change(function(){
    var attribute = document.getElementById("slctAttribute");
    var attributeSelected = attribute.value;
    console.log(attributeSelected);
});

这是我的getData.php文件:

<?php
include "connect.php";
$test1 = $_GET['tableSelected'];
$test2 = $_GET['fieldSelected'];
$test3 = $_GET['attributeSelected'];
echo ($test1);
echo ($test2);
echo ($test3);
?>

您必须将用户重定向到URL中包含变量的页面。PHP在服务器上运行一个脚本,然后将该脚本的输出发送到客户端。JavaScript仅在客户端上运行。你可以这样做:

$('#slctTable').change(function(){
    var table = document.getElementById("slctTable");
    var tableSelected = table.value;
    console.log(tableSelected);
    window.location.href = "?tableSelected=" + tableSelected
});

或者,您可以发出Ajax请求,在不刷新页面的情况下调用服务器。你可以使用这个:

$('#slctTable, #slctField, #slctAttribute').change(function ()
{
    var tableSelected = document.getElementById("slctTable").value;
    var fieldSelected = document.getElementById("slctField").value;
    var attributeSelected = document.getElementById("slctAttribute").value;
    $.ajax({
        "url": "getData.php",
        "type": "GET",
        "data": {
            tableSelected: tableSelected,
            fieldSelected: fieldSelected,
            attributeSelected: attributeSelected
        }
    })
    .done(function (response)
    {
        console.log(response);
    });
});

使用Jquery,您可以使用Ajax来实现这一点:

$("#slctTable").change(function(){
    var table = document.getElementById("slctTable");
    var tableSelected = table.value;
    console.log(tableSelected);
});
$("#slctField").change(function(){
    var field = document.getElementById("slctField");
    var fieldSelected = field.value;
    console.log(fieldSelected);
});
$("#slctAttribute").change(function(){
    var tableSelected = slctTable.val();
    var fieldSelected= slctField.val();
    var attributeSelected = $(this).val();
     $.get( "getData.php?tableSelected="+tableSelected+"&fieldSelected="+fieldSelected+"&attributeSelected="+attributeSelected )
                    .fail(function(data){
                        alert('Ajax Call Error');
                    })
                    .done(function(){
                        alert('Success');
                        });
                    });
});