2

私の現在のウェブサイトアドレスは次のとおりです: www.mysite.com/index.php?user=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>
4

1 に答える 1

0

www.mysite.com/index.php?user=123つまり、ボタン (または AJAX イベントを発生させるもの) をクリックしたときにオンになっていると言っているのであれば、別の URL をロードしますwww.mysite.com/myajaxpage.php

その場合、ユーザー パラメータを AJAX リクエストに渡すのを忘れている可能性があります。URLに定義されていないため、に$_GET['user']アクセスできません。myajaxpage.php

コード例

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

編集: 著者は Vanilla JS を使用しているため、この例は無意味です。

于 2013-08-23T20:31:16.257 に答える