Manejar valores de un SELECT con PHP y REGEX.

Tiempo de lectura estimado: 2 minutos

Manejar valores de un SELECT con PHP y REGEX.

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

© 2024 - Serna Studio

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