Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

replace div content using ajax and jquery

Tags:

jquery

ajax

I try following code to replace div content but its not working what i am doing wrong?

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

//list to get value

<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 to replace

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

//my display.php

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

EDIT: how can i check its going or not to my display.php. i have try solution but not get success.

like image 229
Kango Avatar asked Dec 12 '12 04:12

Kango


3 Answers

Your code has a function which defines an onclick action and doesn't make the call itself. I bet if you double clicked the link it would work, but you should do it like this:

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

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

Finally, change the call to this:

onclick='MakeRequest(5);'

OR just do this, which binds the li element to the click function and no "onclick" is necessary:

$(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);
        }
    });
});
});
like image 149
Tim Withers Avatar answered Oct 25 '22 08:10

Tim Withers


remove MakeRequest() function just try using $("#page_num li").click otherwise it will call function twice

$(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);
         }
      });
   });
});
like image 41
Pragnesh Chauhan Avatar answered Oct 25 '22 08:10

Pragnesh Chauhan


You have onclick events binded to that function called MakeRequest then in that function you again bind the lis to a click event.

You better take this approach:

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

and get rid of inline onclick events.

like image 40
Arash Milani Avatar answered Oct 25 '22 08:10

Arash Milani