X
xcodex
Hey!
Les cuento como estoy haciendo un filtrado de articulos y luego cual es el problema:
El menú es así:
Como vieron, en el action dice: PHP_SELF, por lo que al comienzo del archivo dice:
Y luego se hace un llamado a la BD para finalmente mostrar los artículos utilizando un foreach:
El problema: NO FUNCIONA!.
Los artículos se muestran, pero NO cuando se filtran. :-(
PD: Valoren que ahora cuando pregunto ya coloco todo el código 😛
Les cuento como estoy haciendo un filtrado de articulos y luego cual es el problema:
El menú es así:
HTML:
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<!-- Rubros -->
<span class="seccion-ofertas d-block p-1"> <i class="fas fa-user-md"></i> Filtrar: </i></a></span>
<div class="control-group">
<label class="control control-radio">
Art 1
<input type="radio" name="rubro" value="articulo1"/>
<div class="control_indicator"></div>
</label>
<label class="control control-radio">
Art 2
<input type="radio" name="rubro" value="articulo2"/>
<div class="control_indicator"></div>
</label>
<label class="control control-radio">
Art 3
<input type="radio" name="rubro" value="articulo3"/>
<div class="control_indicator"></div>
</label>
</select>
</div>
<hr>
<button type="submit" name="aplicarfiltros" class="btn btn-success btn-sm btn-block">Aplicar filtros</button>
<button type="reset" name="borrarfiltros" class="btn btn-light btn-sm btn-block">Borrar filtros</button>
</form>
Como vieron, en el action dice: PHP_SELF, por lo que al comienzo del archivo dice:
PHP:
if (isset($_POST['aplicarfiltros'])) {
if ($_POST['rubro']) {
$rubro_consulta = $_POST['rubro'];
} else {
$rubro_consulta = null;
}
}
Y luego se hace un llamado a la BD para finalmente mostrar los artículos utilizando un foreach:
PHP:
include "conectarbd.php";
if ($rubro_consulta == null) {
$sql_articulos = "SELECT * FROM articulos WHERE publicado = 'si'";
$sentencia_articulos = $pdo->prepare($sql_articulos);
$sentencia_articulos->execute();
$resultado_articulos = $sentencia_articulos->fetchAll();
} else {
$sql_articulos = "SELECT * FROM articulos WHERE publicado = 'si' AND rubro = :rubro";
$sentencia_articulos = $pdo->prepare($sql_articulos);
$sentencia_articulos->bindParam(':rubro', $rubro_consulta, PDO::PARAM_STR);
$sentencia_articulos->execute();
$resultado_articulos = $sentencia_articulos->fetchAll();
}
HTML:
<?php foreach($resultado_articulos as $articulo):?>
<div class="row">
<div class="col">
<span class="d-inline"><?php echo $oferta ['titulo']?></span> - <span class="d-inline"><?php echo $oferta ['ciudad']?></span>
<p>
<?php echo $oferta ['descripcion']?></span>
</p>
</div>
</div>
<?php endforeach ?>
El problema: NO FUNCIONA!.
Los artículos se muestran, pero NO cuando se filtran. :-(
PD: Valoren que ahora cuando pregunto ya coloco todo el código 😛
Última edición por un moderador: