tags:

views:

111

answers:

5

Hello! Here is a piece of code :

$username="anant";
$name="ana";
echo $username;
echo $name;

Now if using jquery $.post() i want to retrieve $username and $name ,how would I do it ?

Thanks!

A: 

Now that I know what you are trying to do post expects a fourth parameter the encoding type. If you set it to JSON you would encode your data like so

echo '{"username": ".'$username.'", name":"'.$name.'"}'; //Json may not be perfect

you can access it in jQuery using

data.username
Belinda
A: 

First thing is you have to do a GET not a POST. You may need to change your server side code a little bit so that front end had a clue of how to identify different values (JSON will be better) but a simple , should work fine.

$username="anant";
$name="ana";
echo "$username,"
echo "$name";

your output will be then something like Anant001,Anant your username, name.

Then use a simple jQuery call to get it and split it by , and here is an example..

$.get('/getnames', function(data){
     var tokens = data.split(",");
     var username = tokens[0];
     var name = tokens[1];
});
Teja Kantamneni
Last I checked, PHP strings needed to be quoted. `echo $username . ",";` or `echo "$username,";`
Hello71
+2  A: 

I'm not a php expert but try something like:

php

$username="anant";
$name="ana";
echo json_encode(array("username"=>$username,"name"=>$name));

js

$(function() {
  $.get('test.php', function(data) {
     alert(data.username + ':' + data.name);
  });
});

I hope this helps!

Mouhannad
thanks! this is what i was looking for
Anant
+7  A: 

I assume the code is your php based response to the $.post call. If all you are returning are values then the easiest thing to do is to return a json response. For example...

PHP Script:

$values = array(
  'username' => 'anant'
  'name' => 'ana'
);

header('Content-type: application/json');
echo json_encode($values);

JS $.ajax call:

$.ajax(
  url: '/path/to/script.php',
  type: 'post',
  dataType: 'json',
  success: function(data){
     alert('Username: '+data.username);
     alert('name: '+data.name);
  }
);

Or if you wanna stick with $.post then follow kovshenin's answer for the syntax using $.post. But be sure you use my php code witht he header() call to properly set the content type of the http response. I just prefer to use the long hand.

prodigitalson
+1  A: 

You will be better off with json_encode which javascript will understand just fine:

$res = array('username' => 'anant', 'name' => 'something'); 
echo json_encode($res);

Then use the following code in jQuery to retrieve the values:

$.post('/something', function(response) {
    alert("Username is: " + response.username + " and name is: " + response.name);
}, "json");

Cheers.

kovshenin