-1

您好我目前有一个 JS 文件被调用来用动态数据填充我的 html 页面。我的 JS 文件调用 PHP 文件从我的 sqldb 中获取内容,我的 PHP 文件回显 json_encode 它从 sqldb 中获取的内容,而后者又用于填充 html 页面。

我的问题是,根据 url 中的内容,即 ?user=Bob,我希望我的 js 文件调用 php 文件来搜索 Bob。如果没有指定 ?user=xxxx,现在它会搜索当前用户。似乎 $GET['user'] 始终为空,因此它没有被传递,因为我怀疑 JS 文件作为中间人工作。这是我的代码片段:

我的网址:www.website.com/index.php?user=Bob

我的 HTML 代码

<script type="text/javascript" src="js/get-data.js"></script>

我的 JavaScript

$(document).ready(function(){
    $.ajax({
        type: 'GET',
        url: 'php/retrieve-db.php',
        dataType: 'json',
        success: function(response){
            var name = response[0];
            var location = response[1]; 

            $('#name').html(name);
            $('#location').val(location);
            }
    });
});

我的 PHP 代码

$id;

if (isset($_GET["user"]))
{
    $id = $_GET["user"];
}
else
{
    $id = $_SESSION['loggedInUser'];
}

$query = "SELECT * FROM Persons WHERE User = '$user'";
if($result = mysqli_query($sqlconnection,$query))
{
    $row = mysqli_fetch_row($result);

    echo json_encode($row);
}
4

2 回答 2

1

您需要data在 ajax 调用中指定属性。

$.ajax({
    type: 'GET',
    data: $("#myForm").serialize(), //for example. You can change this to something relevant.
    /*rest of the code*/
});

这将做的是准备一个带有适当数据的 GET 请求,例如,http://path/to/backend/?key1=value1&key2=value2

于 2013-08-03T04:59:42.490 回答
-1

我相信你想做这样的事情

$(document).ready(function(){
    $.ajax({
        type: 'GET',
        url: 'php/retrieve-db.php',
        data: <?php echo json_encode($_GET); ?>,
        dataType: 'json',
....

编辑:
感谢@Brad 和@Ashwin Musjija 指出。我太快地专注于答案,以至于忽略了可能的非持久性 XSS 攻击。

于 2013-08-03T04:58:41.220 回答