2013-08-28 3 views
0

Я пытаюсь отправить несколько переменных STRING из android в PHP как JSON. Я выполнил это, используя один из руководств в Интернете, но, к сожалению, он не работает, и я не могу его решить, используя другие подобные вопросы в StackOverflow.Android для JSON для PHP для MySQL

Вот мой андроид код: -

JSONObject jsonObject= new JSONObject(); 
JSONArray jsonArray=new JSONArray(); 

public class sendData extends AsyncTask<String, String, Void> { 

    @Override 
    protected Void doInBackground(String... params) { 

     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost("http://bdp.site40.net/sendRegData.php"); 

     try { 
      HttpEntity httpEntity = new StringEntity(jsonArray.toString()); 
      httpPost.setEntity(httpEntity); 
      httpClient.execute(httpPost); 
     } 
     catch (IOException e) { 
     } 

     return null; 
    } 
} 

public void onClickSubmitButton(View view) throws JSONException { 

    jsonObject.put("name",name); 
    jsonObject.put("blood",blood); 
    jsonObject.put("cell",cell); 
    jsonObject.put("email", email); 
    jsonObject.put("address",address); 
    jsonObject.put("country",country); 
    jsonObject.put("state",state); 
    jsonObject.put("city",city); 

    jsonArray.put(jsonObject); 

    new sendData().execute(); 

} 

А вот мой PHP код: -

<?php 

    $json = file_get_contents("php://input"); 
    $data = json_decode($json); 
    $name = $data[0]->name; 
    $blood = $data[0]->blood; 
    $cell = $data[0]->cell; 
    $email = $data[0]->email; 
    $address = $data[0]->address; 
    $country = $data[0]->country; 
    $state = $data[0]->state; 
    $city = $data[0]->city; 
    $con = mysql_connect("","","") or die(mysqli_connect_error()); 
    $db = mysql_select_db("",$con) or die(mysqli_connect_error()); 
    mysql_query("INSERT INTO Donors(Name,Blood,Mobile,E-Mail,Address,Country,State,City)VALUES('$name','$blood','$cell','$email','$address','$country','$state','$city')"); 

?> 

После экспериментов немного я свел к тому, что проблема лежит в которой i SEND данные в PHP-скрипт И/ИЛИ способ, которым данные ПОЛУЧЕНЫ скриптом PHP. Может ли кто-нибудь искать проблему и исправить ее? Спасибо!

Очки Примечание:

  1. Я удалил MySQL имя пользователя, пароль, имя базы данных и хост для личной жизни (очевидно).
  2. Все 8 переменных находятся в формате String.
+0

попытка вторя $ JSON первый и посмотрим, какие значения здесь – Satya

+0

@Satya но PHP скрипт не получает значения, пока я нажать на кнопку Submit на мое приложение. Итак, как мне получить значения после нажатия кнопки отправки? – sd3993

ответ

0

Удалить строки:

httpPost.setHeader("JSONObject", jsonObject.toString()); 
httpPost.getParams().setParameter("JSONArray", jsonArray); 

и положить ваше содержание JSON в теле POST вместо:

HttpEntity entity = new StringEntity(jsonArray.toString()); 
httpPost.setEntity(entity); 

Вам также нужно изменить ваш PHP скрипт для того, чтобы обрабатывать JSON массив правильно ,

... 
$name = $data[0]->name; 
$blood = $data[0]->blood; 
$cell = $data[0]->cell; 
... 
+0

Это должен быть объект StringEntity = new StringEntity (jsonArray.toString()); правильно?? И любые идеи о том, как мне изменить свой php-скрипт? Я новичок в этом. – sd3993

+0

заменить $ data-> на $ data [0] -> должно быть достаточно – trebron

+0

ах да ок. моя вина. забыли оператор импорта. :/ – sd3993

Смежные вопросы