Ajax PHP不会检索地址栏变量


Ajax PHP wont retrieve address bar variable

我当前的网站地址是:www.mysite.com/index.php?用户=123

我单击一个链接来激活要打开的ajax页面。ajax页面包含以下内容:

$usernum = $_GET["user"];
$result = mysql_query("SELECT * FROM Persons WHERE user = $usernum");

这会产生一个错误:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:'Program Files (x86)'Ampps'www'social2'profile'indexBasics.php on line 29

如果我在用户号码中硬编码,不会出现错误,但它只是拒绝获取地址栏变量。

帮助?劝告

-----添加的信息------

<script>
window.onload = function () {
    var basics = document.getElementById('basics'),
        favorites = document.getElementById('favorites');
    basics.onclick = function() {
        loadXMLDoc('indexBasics');
        var otherClasses = favorites.className;
        if (otherClasses.contains("Active")) {
            basics.className = 'statusOptionActive';
            favorites.className = 'statusOption';
        }
    }
    favorites.onclick = function() {
        loadXMLDoc('indexFav');        
        var otherClasses = basics.className;
        if (otherClasses.contains("Active")) {
            favorites.className = 'statusOptionActive';
            basics.className = 'statusOption';
        }
    }
    function loadXMLDoc(pageName)
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("centreCont").innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open("GET","../profile/" + pageName + ".php",true);
        xmlhttp.send();
        }
}
</script>

所以你说你在www.mysite.com/index.php?user=123上,当你点击按钮(或者任何触发AJAX事件的东西)时,你会加载一个不同的URL,它可以是类似www.mysite.com/myajaxpage.php的东西。

在这种情况下,您可能忘记将用户参数传递给AJAX请求。因此,您无法访问myajaxpage.php中的$_GET['user'],因为它没有在您的URL中定义。

代码示例

如果你使用jQuery,你可以这样做:

$.urlParam = function(name){
    var results = new RegExp('[''?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
    return results[1] || 0;
}
// ....
$.post('myajaxpage.php', {'user': $.urlParam('user')}, function(data) {
   // your stuff
});

编辑:作者使用VanillaJS,所以这个例子毫无意义。