1

クエリ文字列からデータを取得しようとしていますが、Ajax で使用しています。データが正しく渡されないようで、構文がどこで間違っているのか疑問に思っています。

$(function()
      {
    $("#link").click(function(event)
    {
    event.preventDefault();
        $.get("request.php",{id:+link.attr('id')},function(response){

                $("#ajaxresponse div").fadeOut("fast", function()
                {
                    $("#ajaxresponse div").remove();
                    $("#ajaxresponse").append($(response).hide().fadeIn());
                });

            }
        });
        return false;
    });
});

HTMLページのコード:

<div class="content">

<a href="request.php?id=1" id="link">


</div>

データを ajax 呼び出しに正しく構造化していませんか??

前もって感謝します

私はそれを正しく返すことができますが、Ajaxのやり方ではなく、.phpページを追加する代わりにまだロードしています.request.php側は次のとおりです。

   $username = $_GET['id'];


 echo getTemplate($username);

 function getTemplate($username)
   {
return '<div class="box">
    <h1>ID is</h1>
    <div class="meta">username: '.$username.'</div>
</div>';

  }
4

3 に答える 3

1

このようなユーティリティ関数を使用できます

function getParameterByName(name,url) {

    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(url);

    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));

}

そして、それをコードで使用して、次のように使用します

$("#link").click(function(event)
    {
    event.preventDefault();
    var id = getParameterByName('id',$(this).attr('href'));
        $.get("request.php",{id:id},function(response){ 

デモ: http://jsfiddle.net/joycse06/dPX2h/

于 2012-06-18T11:11:53.070 に答える
0
{id:+link.attr('id')}

する必要があります

{ id: link.attr('id') }
于 2012-06-18T11:11:24.880 に答える
0

この関数を他の関数の外側に追加します。

function getUrlVars(url){

    var vars = [], hash;
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++){
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

次に使用します:

getUrlVars($(this).attr("href"))["id"]

それ以外の

link.attr('id')

デモ: http://jsfiddle.net/zY9s2/

于 2012-06-18T11:11:45.167 に答える