使用jquery / ajax基于php的$ _GET var从db检索数据?

时间:2011-07-26 15:48:58

标签: php jquery ajax

声明

我搜索过重复项,但我似乎无法找到它们。我很惊讶,因为这似乎是个大问题。我很可能错过了一些重要的东西。

问题/疑问

我通过useridphp通过网址传递了myOtherScript.php?userid=1。如何通过ajax传递该变量,以便我可以使用userid查询数据库,将其回显并将其返回到页面?

这是global.js档案

的jQuery

$.ajax({
    url: "myScript.php",
    data: "userid="  - This is what I need: $_GET['userid'] - ,
    success: function( data ) {
        $('#myDiv').html( data );
    }
});

解决方案

在bstakes和this回答的帮助下,我能够通过这个功能找到答案:(回答)

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if(results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}

谢谢你的答案!

4 个答案:

答案 0 :(得分:2)

$.ajax({
    url: "myScript.php",
    data: "userid=<?php echo intval($_GET['userid']); ?>",
    success: function( data ) {
        $('#myDiv').html( data );
    }
});

答案 1 :(得分:1)

您可能必须在PHP文件上内联移动脚本,然后在ajax调用的数据区域中回显$ _GET ['userid']。

刚刚发现:how to get GET and POST variables with JQuery?

答案 2 :(得分:1)

如果你想把JS分开,把它放在一个接受用户id的函数中......

function do_something(user_id) {
    $.ajax({
        url: "myScript.php",
        data: "userid=" + user_id,
        success: function( data ) {
            $('#myDiv').html( data );
        }
    });
}

然后只需致电do_something($_GET['user_id']);

答案 3 :(得分:1)

您也可以尝试使用window.location对象的搜索属性。

如果网址为http://www.mysite.com/display.php?userid=7,window.location.search将返回“?userid = 7”。你显然需要删除前导“?”,但要注意,如果有额外的GET参数,用&符号'&amp;'分隔,那么它们也将被包括在内。

所以,通过一些额外的Javascript,你可以拆分'&amp;',它会得到一个“key = val”数组,然后你可以在等号上溢出并用{key:创建一个对象: VAL}。然后,您可以使用该对象访问查询字符串params。

var qs = window.location.search.substring(1),
    pieces = qs.split('&'),
    i,
    qsObj {},
    tmp;
for ( var i in pieces ) {
   tmp = pieces[i].split('=');
   qsObj[tmp[0]] = tmp[1];
}

有关window.location的更多信息,请参阅https://developer.mozilla.org/En/Window.location