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!.
Desarrollador web • Desarrollador de software· • Amante del diseño gráfico, diseño 2D/3D
🐙 Creando nuevo tema Wordpress en GitHub
🧪 Experimentos y pruebas varias en Serna Studio Lab