8

コードに従って div コンテンツを置き換えようとしましたが、うまくいきません。

function MakeRequest()
{
    $("#page_num li").click(function() {
       var id=(this.id); 
       alert(id);
        $.ajax({
        url : 'display.php',
        data:{"id":id},
        type: 'GET',

        success: function(data){
            $('#ResponseDiv').html(data);
        }
    });
});
}

//値を取得するリスト

<ul id="page_num">
              <li id="5"  onclick='MakeRequest();' ><a href="#">5</a></li>
              <li id="10"  onclick='MakeRequest();' ><a href="#">10</a></li>
               <li id="15"  onclick='MakeRequest();' ><a href="#">15</a></li>
           </ul>

//置換するdiv

<div id='ResponseDiv'>
        This is a div to hold the response.
</div>

//私のdisplay.php

<?php 
   echo "This is a php response to your request!!!!!!";
?>

編集:私のdisplay.phpに行くかどうかを確認するにはどうすればよいですか。私は解決策を試しましたが、成功しませんでした。

4

4 に答える 4

9

コードには、onclickアクションを定義する関数があり、それ自体は呼び出しを行いません。リンクをダブルクリックすると機能するはずですが、次のようにする必要があります。

function MakeRequest(id)
{
    $.ajax({
        url : 'display.php',
        data:{"id":id},
        type: 'GET',

        success: function(data){
            $('#ResponseDiv').html(data);
        }
    });
}

最後に、呼び出しを次のように変更します。

onclick='MakeRequest(5);'

または、これを行うだけで、li要素がクリック関数にバインドされ、「onclick」は必要ありません。

$(document).ready(function()
{
    $("#page_num li").click(function() {
       var id=$(this).attr(id);
        $.ajax({
        url : 'display.php',
        data:{"id":id},
        success: function(data){
            $('#ResponseDiv').html(data);
        }
    });
});
});
于 2012-12-12T04:47:40.670 に答える
2

関数を削除MakeRequest()してみてください。$("#page_num li").clickそうしないと、関数が2回呼び出されます。

$(document).ready(function(){
    $("#page_num li").click(function() {
      var id=(this.id); 
      $.ajax({
         url : 'display.php',
         data:{"id":id},
         type: 'GET',
         success: function(data){
            $('#ResponseDiv').html(data);
         }
      });
   });
});
于 2012-12-12T04:47:53.990 に答える
1

その関数にバインドされたonclickイベントが呼び出されMakeRequest、その関数で再びlisをクリックイベントにバインドします。

このアプローチをとる方がよいでしょう。

$(function(){
    $("#page_num li").click(function() {
        $.ajax({
        url : 'display.php',
        data:{id: $(this).attr('id')},
        type: 'GET',
        success: function(data){
            $('#ResponseDiv').html(data);
        }
    }
});

onclickインラインイベントを取り除きます。

于 2012-12-12T04:49:04.870 に答える
-1

onclickイベントをタグに移動して、次のようにします。

<a href="#" onclick='MakeRequest();>

于 2012-12-12T04:45:54.820 に答える