Reputation: 728
Im trying to send ArrayList to PHP ($_POST) and use it as an array. I use Android Asynchronous Http Client http://loopj.com/android-async-http/
My code
ArrayList<String> array = new ArrayList<String>();
array.add("1");
array.add("2");
array.add("3");
RequestParams params = new RequestParams();
params.put("descr_array", array );
AsyncHttpClient client = new AsyncHttpClient();
client.post(StaticValues.SERVER_PAGE, params, new AsyncHttpResponseHandler() { ... }
In PHP
$descrarray[] = $_POST['descr_array'];
shows only one item, as a string.
$result = print_r($_POST);
print(json_encode($result));
Debugging code shows
Array ( [descr_array] => 1 )
There is only one string, how can I solve it?
Upvotes: 3
Views: 3178
Reputation: 4936
This worked for me...
Map<String, String> aMap = new HashMap<String, String>();
aMap.put("f_name" ,"");
aMap.put("l_name" ,"");
aMap.put("email" ,edtEmail.getText().toString());
RequestParams params = new RequestParams();
params.put("user",aMap);
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, n.....
Upvotes: 0
Reputation: 75820
This is what worked for me:
RequestParams params = new RequestParams();
for (String val : array) {
params.add("descr_array[]", val);
}
It doesn't require you to add extra Headers or import other libraries and works for both JSON
and XML
.
The important thing to note here is the use of add
instead of put
. See the difference between the two.
Upvotes: 0
Reputation: 77910
If you want to get all values write:
RequestParams params = new RequestParams();
params.put("descr_array_1", array.get(0) );
params.put("descr_array_2", array.get(1) );
params.put("descr_array_2", array.get(2) );
But I prefer you to use Gson to convert Array to String and use one pair only:
Gson gson = new Gson();
String out = gson.toJson(array);
params.put("descr_array", out );
Upvotes: 3