2014-05-19 6 views
0

메신저 json 배열을 android에서 다음과 같이 전달합니다. 여기json 배열을 PHP로 수신

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("tag", request_tag)); 

    if(data.moveToFirst()) 
    { 
     do 
     { 
      params.add(new BasicNameValuePair("iscomplete[]",data.getString(0))); 
      params.add(new BasicNameValuePair("uidUser[]",data.getString(1))); 
      params.add(new BasicNameValuePair("connectID[]",data.getString(2))); 
     }while(data.moveToNext()); 
    } 
response = jsonParser.getJSONFromUrl(requestUrl, params); 
    Toast.makeText(context, response, 10000).show(); 

아래의 코드는 이제 내가 그것을 늘 PHP에서 작동 BT는 토스트를 메아리에

public String getJSONFromUrl(String url, List<NameValuePair> params) { 

    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 

     response=EntityUtils.toString(httpEntity); 

     Log.d("Response",response); 
     //jObj=new JSONObject(response); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 


    return response; 

} 

을 다음과

if ($tag == 'request') 
{ 
    $complete = (array)$_POST['iscomplete[]']; 
    $uiuser = (array)$_POST['uidUser[]']; 
    $connectId = (array)$_POST['connectID[]']; 
       echo $complete//This gives a blank value 
} 

JSON 코드가 될 때 서버 측에 수신을 원하지입니다 나는 빈 메시지를 받는다. 내가 제대로 데이터를받지 못한 것 같아요

+0

JSON을 보여줄 수 있습니까? – Daan

+1

'$ local_array_of_object = json_decode ($ POST [ 'incomingjsonarray']);' – Dave

+0

@ 단은 새로운 코드를 추가했습니다. – coderVishal

답변

1

당신의 안드로이드 애플 리케이션 내에서 당신은 이름 선언 다음에 대괄호를 사용하여 iscomplete, uidUser 및 connectID param을 배열로 만듭니다.

PHP가 페이지를 해석 할 때 PHP는 모든 매개 변수 (POST 또는 GET)를 해당 배열 기반의 해당 배열로 변환합니다. 그래서

?iscomplete[]=one&uidUser=23&connectID=3432 

이 될 것입니다 :

$_POST['iscomplete'] = array('one'); 
$_POST['uidUser'] = array(23); 
$_POST['connectID'] = array(3432); 

을 당신이 가치를 얻을하려는 경우, 당신은 대괄호를 포함 할 필요가 없습니다 - PHP는 이미 박탈했다. 따라서 필요한 것은 :

if ($tag == 'request') 
{ 
    $complete = (array)$_POST['iscomplete']; 
    $uiuser = (array)$_POST['uidUser']; 
    $connectId = (array)$_POST['connectID']; 
    echo $complete; 
}