Hello, what I want is that through a spinner select the family that I want to modify by locating it by means of an id, at the same time introduce the modification in a blank field.
This is my PHP code.
<?php
require('conexion.php');
$id=$_POST['id'];
// Consulta de Usuarios en la base de datos
$consulta = "SELECT *
FROM tb_familia
WHERE id = ?";
$comando=$conn->prepare($consulta);
$comando->execute(array($id));
$row=$comando->fetch(PDO::FETCH_ASSOC);
if($row)
{
$id=$_POST['id'];
$familia=$_POST['familia'];
// Creando consulta UPDATE
$consulta = "UPDATE tb_familia" .
" SET familia=? " .
"WHERE id=?";
// Preparar la sentencia
$cmd = $conn->prepare($consulta);
// Relacionar y ejecutar la sentencia
$cmd->execute(array($familia,$id));
print json_encode(
array(
'estado' => '1',
'mensaje' => 'Se actualizó correctamente en familia')
);
}
else
{
// Código de error
print json_encode(
array(
'estado' => '2',
'mensaje' => 'No se actualizó por que no hay una familia con este ID')
);
}
?>
This is my Java code (Android)
// UPDATE FAMILY
private void submitForm() {
ActualizarFamilia(
String.valueOf(spbuscarfamilia.getSelectedItemId()),
etmodificacion.getText().toString());
}
private void ActualizarFamilia(final String id, final String familia) {
// Tag used to cancel the request
String cancel_req_tag = "register";
showLoadingDialog("Espere Actualizando ......");
StringRequest strReq = new StringRequest(Request.Method.POST,
Config.URL_UPDATE_FAMILIA, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Register Response: " + response.toString());
try {
hideLoadingDialog();
JSONObject jObj = new JSONObject(response);
String estado = jObj.getString("estado");
if (estado.equalsIgnoreCase("1")) {
Toast toast1 = Toast.makeText(updateFamilia.this," Actualización en Productos con éxito",Toast.LENGTH_LONG);
TextView v=(TextView)toast1.getView().findViewById(android.R.id.message);
v.setShadowLayer(0,0,0,Color.YELLOW);
v.setBackgroundColor(Color.GREEN);
v.setTextColor(Color.BLACK);
v.setTextSize(20);
toast1.setGravity(Gravity.CENTER | Gravity.CENTER,0,0);;
toast1.show();
Limpiar();
} else {
hideLoadingDialog();
Toast toast2= Toast.makeText(updateFamilia.this,"No se Actualizó por que no existe un Producto con este código",Toast.LENGTH_LONG);
TextView v=(TextView)toast2.getView().findViewById(android.R.id.message);
v.setShadowLayer(0,0,0,Color.YELLOW);
v.setBackgroundColor(Color.RED);
v.setTextSize(20);
toast2.setGravity(Gravity.CENTER | Gravity.CENTER,0,0);
toast2.show();
Limpiar();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Registration Error: " + error.getMessage());
Toast toast3= Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG);
toast3.setGravity(Gravity.CENTER| Gravity.CENTER,0,0);
toast3.show();
hideLoadingDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("id",id);
params.put("familia", familia);
return params;
}
};
// Adding request to request queue
AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq, cancel_req_tag);
}
public void showLoadingDialog(String texto) {
try {
if (progressDialog == null) {
progressDialog = new ProgressDialog(this);
}
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.setMessage(texto);
progressDialog.show();
} catch (Exception exception) {
progressDialog = null;
}
}
public void hideLoadingDialog() {
try {
if (progressDialog != null) {
progressDialog.dismiss();
}
} catch (Exception a) {
progressDialog = null;
}
}
// CODE TO SHOW THE DATA IN THE SPINNER // SPINNERT TYPE FAMILY
private void populateSpinner() {
List<String> lables = new ArrayList<String>();
for (int i = 0; i < familiasList.size(); i++) {
lables.add(familiasList.get(i).getFamilia());
}
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
spinnerAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spbuscarfamilia.setAdapter(spinnerAdapter);
}
private void SeleccionaItemFamilia(Spinner spbuscarfamilia, String value) {
for (int i = 0; i < spbuscarfamilia.getCount(); i++) {
if (spbuscarfamilia.getItemAtPosition(i).toString().equalsIgnoreCase(value)) {
spbuscarfamilia.setSelection(i);
}
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
private class Getfamilia extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = new ProgressDialog(updateFamilia.this);
loading.setMessage("Obtencion del tipo de Usuario..");
loading.setCancelable(false);
loading.show();
}
@Override
protected Void doInBackground(Void... arg0) {
ServiceHandler jsonParser = new ServiceHandler();
String json = jsonParser.makeServiceCall(Config.URL_SP_FAMILIA, ServiceHandler.GET);
Log.e("Response: ", "> " + json);
if (json != null) {
try {
JSONObject jsonObj = new JSONObject(json);
if (jsonObj != null) {
JSONArray frutas = jsonObj
.getJSONArray("familia");
for (int i = 0; i < frutas.length(); i++) {
JSONObject catObj = (JSONObject) frutas.get(i);
Familia cat = new Familia(catObj.getInt("id"),
catObj.getString("familia"));
familiasList.add(cat);
}
}
} 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 (loading.isShowing())
loading.dismiss();
populateSpinner();
}
}
// CODE TO POPULATE IT
spbuscarfamilia=(Spinner)findViewById(R.id.spbuscafamilia);
familiasList = new ArrayList<Familia>();
// seleccionar las frutas del spinner
spbuscarfamilia.setOnItemSelectedListener(this);
new Getfamilia().execute();