2017-10-22 5 views
-1

私のPHPで変数「Usuario」を送信する際に問題が発生しました($username = $_POST["Usuario"])アンドロイドスタジオから結果がスピナーを埋めますが、私はこのパラメータを送信する方法を知らないので、誰かが私を助けることができるので、それを記入してください。 PHPを使用してアンドロイドスタジオのスピナーでJSONデータを出力しても動作しません

<?php 
include('Conexion.php'); 
$username = $_POST["Usuario"]; 
$respuesta = array(); 
$respuesta["clientes"] = array(); 
$sql="SELECT * FROM tablacliente WHERE idTrabajador=$username"; 
$result=mysqli_query($connection,$sql); 
while($row = mysqli_fetch_array($result)){ 
// Array temporal para crear una sola categoría 
$tmp = array(); 
$tmp["id"] = $row["idCliente"]; 
$tmp["nombre"] = $row["Nombre del Cliente"]; 
$tmp["apellido"] = $row["Apellido del Cliente"]; 
// Push categoría a final json array 
array_push($respuesta["clientes"], $tmp); 
} 
header('Content-Type: application/json; Charset=UTF-8'); 
//Escuchando el resultado de json  
echo json_encode($respuesta,JSON_HEX_AMP|JSON_HEX_QUOT|JSON_HEX_APOS|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); 
mysqli_close($connection); 
?> 

そして、私は自分のコードを変更し、Javaコード

public class OrdenVenta extends AppCompatActivity implements AdapterView.OnItemSelectedListener { 
Spinner rsfpago, rsticom; 
private Spinner spinnercliente; 
// array para listar las frutas 
private ArrayList<ListarClientes> clienteList; 
ProgressDialog pDialog; 
TextView ridt; 
String datoNombre; 
private String URL_LISTA_CLIENTE ="XX"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_orden_venta); 
    ridt = (TextView) findViewById(R.id.orId); 
    Intent intent = getIntent(); 
    Bundle extras = intent.getExtras(); 
    if (extras != null) {//ver si contiene datos 
     datoNombre = (String) extras.get("idTrabajador");//Obtengo el nombre 
     ridt.setText(datoNombre); 
    } 
    post(URL_LISTA_CLIENTE); 
    spinnercliente = (Spinner) findViewById(R.id.orSpinnercli); 
    clienteList = new ArrayList<ListarClientes>(); 
    // seleccionar las frutas del spinner 
    spinnercliente.setOnItemSelectedListener(this); 
    new Getcliente().execute(); 

    rsfpago = (Spinner) findViewById(R.id.orFpago); 
    ArrayAdapter spinner_adapter = ArrayAdapter.createFromResource(this, R.array.fPagoVenta, android.R.layout.simple_spinner_item); 
    spinner_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    rsfpago.setAdapter(spinner_adapter); 
    rsfpago.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) { 
      Toast.makeText(adapterView.getContext(), (String) adapterView.getItemAtPosition(pos), Toast.LENGTH_SHORT).show(); 
      //Ctipos = rstipo.getSelectedItem().toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 
    }); 

    rsticom = (Spinner) findViewById(R.id.ortipocom); 
    ArrayAdapter spinner_adapter2 = ArrayAdapter.createFromResource(this, R.array.fCom, android.R.layout.simple_spinner_item); 
    spinner_adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    rsticom.setAdapter(spinner_adapter2); 
    rsticom.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView2, View view, int pos, long id) { 
      Toast.makeText(adapterView2.getContext(), (String) adapterView2.getItemAtPosition(pos), Toast.LENGTH_SHORT).show(); 
      //Ctipos = rstipo.getSelectedItem().toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
} 
public String post(String posturl) { 
    try { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(posturl); 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("Usuario","1")); 
     httppost.setEntity(new UrlEncodedFormEntity(params)); 
     HttpResponse resp = httpclient.execute(httppost); 
     HttpEntity ent = resp.getEntity(); 
     String text = EntityUtils.toString(ent); 
     Log.i("OrdenVenta", "Response: " + text); 
     return text; 
    }catch (Exception e) { 
     // Devuelve el mensaje de error, en caso que lo haya. 
     return e.getMessage(); 
    } 
} 
private void populateSpinner() { 
    List<String> lables = new ArrayList<String>(); 
    for (int i = 0; i < clienteList.size(); i++) { 
     lables.add(clienteList.get(i).getName() + clienteList.get(i).getApellido()); 
    } 
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, lables); 
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnercliente.setAdapter(spinnerAdapter); 
} 
private class Getcliente extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(OrdenVenta.this); 
     pDialog.setMessage("Obteniendo Clientes.."); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 
    @Override 
    protected Void doInBackground(Void... arg0) { 

     ServiceHandler jsonParser = new ServiceHandler(); 
     String json = jsonParser.makeServiceCall(URL_LISTA_CLIENTE, ServiceHandler.GET); 

     Log.e("Response: ", "> " + json); 

     if (json != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(json); 
       if (jsonObj != null) { 
        JSONArray cliente = jsonObj 
          .getJSONArray("clientes"); 

        for (int i = 0; i < cliente.length(); i++) { 
         JSONObject catObj = (JSONObject) cliente.get(i); 
         ListarClientes cat = new ListarClientes(catObj.getInt("id"), 
           catObj.getString("nombre"), 
           catObj.getString("apellido")); 
         clienteList.add(cat); 
        } 
       }else { 
        AlertDialog.Builder builder = new AlertDialog.Builder(OrdenVenta.this); 
        builder.setMessage("Error al cargar los clientes").setNegativeButton("Aceptar", null).create().show(); 
        finishActivity(1); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } else { 
      Log.e("JSON Data", "¿No ha recibido ningún dato desde el servidor!"); 
     } 

     return null; 
    } 
    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     if (pDialog.isShowing()) 
      pDialog.dismiss(); 
     populateSpinner(); 
    } 
} 
@Override 
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) { 
    Toast.makeText(adapterView.getContext(), (String) adapterView.getItemAtPosition(pos), Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onNothingSelected(AdapterView<?> parent) { 

} 

}

ServiceHandlerクラス

public class ServiceHandler { 
static InputStream is = null; 
static String response = null; 
public final static int GET = 1; 
public final static int POST = 2; 
public ServiceHandler() { 
} 
public String makeServiceCall(String url, int method) { 
    return this.makeServiceCall(url, method, null); 
} 
public String makeServiceCall(String url, int method, 
           List<NameValuePair> params) { 
    try { 
     // http client 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpEntity httpEntity = null; 
     HttpResponse httpResponse = null; 
     // Checking http request method type 
     if (method == POST) { 
      HttpPost httpPost = new HttpPost(url); 
      // adding post params 
      if (params != null) { 
       httpPost.setEntity(new UrlEncodedFormEntity(params)); 
      } 
      httpResponse = httpClient.execute(httpPost); 
     } else if (method == GET) { 
      // appending params to url 
      if (params != null) { 
       String paramString = URLEncodedUtils 
         .format(params, "utf-8"); 
       url += "?" + paramString; 
      } 
      HttpGet httpGet = new HttpGet(url); 
      httpResponse = httpClient.execute(httpGet); 
     } 
     httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "UTF-8"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     response = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error: " + e.toString()); 
    } 
    return response; 
} 

}

答えて

0

は簡単な答えは、これを実行することでした。

@Override 
protected Void doInBackground(Void... arg0) { 

    ServiceHandler jsonParser = new ServiceHandler(); 
    String json = jsonParser.makeServiceCall(URL_LISTA_CLIENTE, ServiceHandler.GET); 

protected Void doInBackground(Void... arg0) { 
     ServiceHandler jsonParser = new ServiceHandler(); 
     String json = jsonParser.makeServiceCall("HTTPLINK/.php?Usuario="+datoNombre, ServiceHandler.GET); 
     Log.e("Response: ", "> " + json); 
     if (json != null) { 

insted

関連する問題