-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;
}
}