Manejar valores de un SELECT con PHP y REGEX.

Tiempo de lectura estimado: 2 minutos

Hoy traigo un artículo algo especial. Algo que me ha tocado vivir de primera mano y que me tuvo en jaque ciertas horas.

Como bien sabemos, mediante PHP podemos trabajar con los datos de nuestros formularios: campos de texto, textarea, botones, etc etc… para trabajar con ellos según nos convenga.

Voy a plantearos un escenario más específico.

Pasar el id y el tipo de categoría de un formulario para poder trabajarlos desde PHP y poder realizar una inserción en base de datos. Pero esos datos , vienen de un bucle donde se muestra el tipo de categoria a seleccionar. Así que sólo podría coger el tipo de categoría pero no el id. ¿O si?.

Estando condicionado por dicho bucle, necesitaba pasar los 2 valores del select SI O SI. Así que manos a la obra:

<select name="tipoP">
<?php
$query = "select * from tipoproducto";
$data = $producto->prepare($query);
$data->execute();

while($row=$data->fetch(PDO::FETCH_ASSOC)){
$tipoProducto=$row['tipoProducto'];
if($row['tipoProducto'] == " ")
echo 'sin valor';
else
echo '<option value="'.$row['tipoProducto'], $row['idTipo'].'">'.$row['tipoProducto'].'</option>';

}//while
?>
</select>

 

Dentro del bucle, pasamos el tipo producto y el id en el mismo option.

Ruedas Chinas23 <— Esto sería como llegaría a nuestro script.

¿Y ahora qué?. Pues vamos a procesar esa cadena.

He comentado que quería por una parte el tipo de categoria: ‘Ruedas Chinas’ y por otro el id: 23.

$split_str= $_POST["tipoP"]; //Aqui va nuestro minichorizillo Ruedas Chinas23

 

Vamos a darle amor con unas funciones muy molonas de PHP: intval, strval y preg replace.

//Separamos la cadena mediant id y tipo producto, respectivamente
$idTipo = intval(preg_replace('/[^0-9]+/', '', $split_str));
//Añadimos espacio en blanco para categorías de mas de un palabra

$tipoCategoria = strval(preg_replace('/[^a-z A-Z áéíóúÁÉÍÓÚñÑ.]+/iu', ' ', $split_str));

 

Y ya está!. Ya tenemos nuestras variables por separado y listas para ser insertadas o lo que se necesite.

Esto es un código rápido y sencillo para todos. Es mejorable, pero no entra en este mini tutorial.

¡A picar con cabeza!.

Deja un comentario

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar