Hola gente
Estoy teniendo un quebradero de cabeza para resolver lo siguiente...
Siguiendo
este tutorial, he conseguido mostrar los resultados de la BD y que cada uno tenga su propio enlace para añadir un artículo al carrito.
De manera gráfica, esto es lo que tengo:
El botón me lleva a otro archivo junto 2 parámetros GET, los cuales son
id
y
add
.
Código HTML:
Ver original<a href='lista.php?id=" . $infoproducto['id'] . "&action=add'>+ Añadir a la lista de pedidos
</a>
En el archivo
lista.php
obtengo los datos del artículo desde el
id
de la URL haciendo una consulta a la base de datos y los muestro con un
foreach
en una tabla. De esta manera:
Código PHP:
Ver originalif(isset($_SESSION['carro'])){
$totalcoste = 0; //Coste total
$xTotal = 0; //Inicializamos el contador de productos seleccionados
echo "<table width='80%'>
<thead>
<tr class='infoActual'>
<th>Artículo</th>
<th>Cantidad</th>
<th>Acción</th>
<th>Precio c/u</th>
<th>Sub-total</th>
</thead>
</tr>";
echo "<tbody>
<tr><td colspan=5><hr></td></tr>";
foreach($_SESSION['carro'] as $id => $x){
///////////////////////////////////////////////////////// CONSULTA A LA BBDD
$resultado = mysqli_query($conexion, "SELECT * FROM articulos WHERE id='$id'");
$id = $mifila['id'];
$marca = $mifila['marca'];
$numeroarticulo = $mifila['numeroarticulo'];
$precio = $mifila['precio'];
///////////////////////////////////////////////////////// CONSULTA A LA BBDD
//Coste por artículo según la cantidad elegida
$coste = $precio * $x;
//Coste total del carro
$totalcoste = $totalcoste + $coste;
//Contador del total de productos añadidos al carro
$xTotal = $xTotal + $x;
echo "<tr class='cuadros'>
<td data-label='Artículo'><strong>".$marca."</strong> - Art. ".$numeroarticulo." - Color ".$color." - Talla ".$talla."</td>
<td data-label='Cantidad'>$x</td>
<td data-label='Acción'>
<p>
<a href='lista.php?id=". $id ."&action=add'>Aumentar</a><br>
<a href='lista.php?id=". $id ."&action=remove'>Reducir</a><br>
<a href='lista.php?id=". $id ."&action=removeProd'>Eliminar</a><br>
</p>
</td>
<td data-label='Precio C/U'>".$precio."$
<td data-label='Sub-total'>".$coste."$";
}
echo "<tr><td colspan='5'><hr></td></tr>
<tr>";
if ($xTotal === 1) { //Si es igual 1, es singular, sino, es plural
$cantidadArt = "artículo";
} else {
$cantidadArt = "artículos";
};
echo "</tr>
</td>
</tbody>
</table>
<div align='center'><p><strong>Total: ".$totalcoste."$</strong> en ".$xTotal." ".$cantidadArt."</p></div>
";
if ($xTotal === 0) { //Si no hay artículs, muestra un mensaje, y si los hay, da la opción de finalizar la compra
$botonFinalizar = "<p>No hay artículos</p>";
} else {
$botonFinalizar = "<div align='center'><a href='finalizar.php'>FINALIZAR</a></div>";
};
echo $botonFinalizar;
}
else { //Si no está seteada la sesión "carro", redirecciona al index
};
Representación gráfica del código de arriba:
Como se puede ver en primera imagen, tengo dos SELECT en HTML, uno de tallas y otro de colores. Obtengo los datos desde un array creado con
explode
a partir de los datos de mi BBDD.
Código PHP:
Ver originalecho '<select name="talla" id="talla">';
$tallas = explode(" - ", $infoproducto['talla']); foreach($tallas as $key => $value){
echo '<option value="'.$value .'">'. $value .'</option> ';
};
echo '</select>';
echo '<select name="color" id="color">';
$colores = explode(" - ", $infoproducto['color']); foreach($colores as $key => $value){
echo '<option value="'.$value .'">'. $value .'</option> ';
};
echo '</select><br>';
Lo que necesitaría es pasar los datos del SELECT a
lista.php
, pero no se cómo.
¿De qué manera puedo enviar los valores de cada SELECT a
lista.php
si ya tiene unos datos de GET?
Lo intenté haciendo un POST y un GET, pero no se "imprimen" los valores en el artículo de la lista. Me estoy desesperando
jrasias d ante braso