Foros del Web » Programando para Internet » PHP »

Pasando varios parametros por $_POST

Estas en el tema de Pasando varios parametros por $_POST en el foro de PHP en Foros del Web. Me otorgaron un DER donde muchas tablas tienen como PK, 2 o mas FK. Por ejemplo, la tabla tramitexcola tiene como pk id_cola , id_tramite, ...
  #1 (permalink)  
Antiguo 26/10/2012, 08:58
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Pasando varios parametros por $_POST

Me otorgaron un DER donde muchas tablas tienen como PK, 2 o mas FK.

Por ejemplo, la tabla tramitexcola tiene como pk id_cola , id_tramite, de las respectivas tablas cola y tramite.

El problema aparece cuando quiero listar los registros de colaxtramite para por ejemplo eliminarlos.

Entonces recurro a llenar el valor de los input con los dos datos, separados con un '#'
Código PHP:
Ver original
  1. <?php foreach ($tramitesxcola as $tramitexcola) { ?>
  2.                 <tr>
  3.                     <td><input class="sch" type="checkbox" name="borrar[]" value="<?php echo $tramitexcola->getId_cola().'#'.$tramitexcola->getId_tramite();?>"/></td>
  4.                     <td><?php echo $tramitexcola->getId_cola(); ?></td>
  5.                     <td><?php echo $tramitexcola->getId_tramite(); ?></td>
  6.                 </tr>
  7.             <?php } ?>

Código PHP:
Ver original
  1. if (isset($_POST['eliminar']) && !empty($_POST['borrar'])) {
  2.  
  3.         $unidades = $_POST['borrar'];
  4.  
  5.         $tramites_a_eliminar = array();
  6.         $contador = 0;
  7.         foreach ($unidades as $unidad) {
  8.             $unidades_explode = explode("#", $unidad);
  9.             $tramites_a_eliminar[$contador]['id_cola'] = $unidades_explode[0];
  10.             $tramites_a_eliminar[$contador]['id_tramite'] = $unidades_explode[1];
  11.             $contador++;
  12.         }
  13.  
  14.         $unidades_eliminadas = $svcTramitexCola->eliminarVariosTramitesxCola($tramites_a_eliminar);
  15.     }

No me parece algo muy prolijo, sobretodo cuando aveces tengo PKs de 4 o 5 campos.
Podria pasar el objeto completo en vez de los IDs, seria lo ideal, pero no me ocurre una buena manera de hacerlo.

¿Se les ocurre alguna manera mejor? despues pense en agregar un id propio a esas tablas, pero a los que me dieron el DER no les convencio mucho la idea.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #2 (permalink)  
Antiguo 26/10/2012, 09:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Pasando varios parametros por $_POST

Podrías pasar el objeto completo codificando en JSON.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/10/2012, 09:40
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Respuesta: Pasando varios parametros por $_POST

decis algo como

value="<?php echo json_encode($objeto); ?>"

Se me ocurrio, pense que podia explotar el input.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 26/10/2012, 10:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Pasando varios parametros por $_POST

¿Explotar?

Bueno, si lo pasas así te va a generar errores de HTML, mas que nada por las comillas.

Lo correcto sería además codificar la cadena de JSON resultando con htmlspecialchars().
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/10/2012, 11:18
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Respuesta: Pasando varios parametros por $_POST

jaja, si me estaba refiriendo al tema de las comillas, eso ultimo que indicas es lo que me estaba faltando. Gracias!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: parametros, pasando, post, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:11.