繁体   English   中英

从基于jquery / ajax的PHP $ _GET var的数据库中检索数据?

[英]retrieving data from db based on php's $_GET var with jquery/ajax?

免责声明

我已经搜索了重复项,但是似乎找不到它们。 我很惊讶,因为这似乎是一个大问题。 我最有可能错过了一件大事。

问题/疑问

我有该userid通过通过URL传递到phpmyOtherScript.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和这个答案的帮助下,我能够通过以下功能弄清楚它:(最佳答案)

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, " "));
}

谢谢你们的答案!

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

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

刚刚发现: 如何使用JQuery获取GET和POST变量?

如果要单独保留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']);

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

如果url是http://www.mysite.com/display.php?userid=7 window.location.search将返回“?userid = 7”。 显然,您将需要删除前导“?”,但是请注意,如果还有其他GET参数,用&分隔,则这些参数也将包括在内。

因此,使用一些附加的Javascript,您可以对'&'进行拆分,这将为您提供一个“ key = val”数组,然后您可以使用等号括起来并使用{key:val}创建一个对象。 然后,您可以使用该对象访问查询字符串参数。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM