user2959620
user2959620

Reputation: 29

PHP-AJAX: How to pass URL variable through Ajax

I have set an Ajax call for Pagination. I need to pass one more vaiable which is stored in the URL

URL

http://thisite.com/pagetitl/?id=12  **// where 'id=' is a variable I want to pass.**

Ajax Call

function page(page) {
    var dataString = '&page=' + page; // pagination with ajax
    pag.ajax({
        type: "GET",
        url: "cmn_pg.php",
        data: dataString,
        success: function (ccc) {
            pag("#search_results").html(ccc);
        }
    });
}

I have tried to GET it in PHP file $id=$_GET[id], but wont work.

I ask how to pass it with AJAX because I'm quite new to AJAX.

Upvotes: 0

Views: 16469

Answers (5)

Sanal K
Sanal K

Reputation: 733

 function page(page) {
   var dataString = '&page=' + page; // pagination with ajax pag.ajax
   ({
     type: "GET",
     url: "cmn_pg.php",
     data: {
      page: page
     },
     success: function(ccc) {
       pag("#search_results").html(ccc);
     }
   });

if more data is there to pass add to data variable as given bellow :-
data : {page:page,data2:data2},

Upvotes: 0

Rohan Kumar
Rohan Kumar

Reputation: 40639

Try this,

pag.ajax({
    type: "GET",
    url: "cmn_pg.php",
    data: {
        page: page, // your page number
        id:12// your id to send
    },
    success: function (ccc) {
        pag("#search_results").html(ccc);
    }
});

Upvotes: 0

Quentin
Quentin

Reputation: 944443

If you are building your query string manually then:

dataString = 'page=' + encodeURIComponent(page);

but you are using jQuery, so don't build it manually:

url: "cmn_pg.php",
data: {
    "page": page
},
success: function (ccc) {

(You also need to use the right name for it in PHP: <?php $id = $_GET['page'] ?>)

Upvotes: 7

Stefan
Stefan

Reputation: 14883

You named the variable "page" and try to access it via "id" in PHP. You have to create the query string liek this:

var  dataString = '&id=' + page; 

Alertnitavly you can use pass an object to the "data" parameter andjQUery does the transformationf for you. Sample:

 data: { id: page },

Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below).

Soruce: http://api.jquery.com/jQuery.ajax/

Upvotes: 0

웃웃웃웃웃
웃웃웃웃웃

Reputation: 11984

You can pass via url like this

pag.ajax
({
type: "GET",
url: "cmn_pg.php?page="+page,
success: function(ccc)
  {
    pag("#search_results").html(ccc);
  }
});

Or

pag.ajax
({
type: "post",
url: "cmn_pg.php",
data: {'data':dataString},//You can add as many datas seperated by comma to pass more values
success: function(ccc)
  {
    pag("#search_results").html(ccc);
  }
});

And in php

$dataString = $_POST['data'];

Upvotes: 0

Related Questions