creando botones con Laravel
Publicado por Charly (70 intervenciones) el 10/02/2018 13:02:29
Estoy creando un CRUD con Laravel y tengo tanto el index como los formularios creados.
En el index tengo la rejilla y en la primera fila he creado una tabla con dos celdas, una con el título de la tabla y un botón "buscar", y otra con un botón "nuevo".
Me han pedido que al pulsar ese botón me lleve a una página donde introduzca los datos del registro a buscar.
Así que he hecho el formulario en la vista "buscar.blade.php" y el código php en la vista "show.blade.php".
El problema es que al darle al botón buscar me va a la página, pero no me muestra nada, ni siquiera el html.
Estos son los códigos que he escrito:
En routes.php:
En index.blade.php:
En ProductoController.php:
En buscar.blade.php:
En show.blade.php:
No se si tengo el error en las rutas del web.php, en el método show del controlador o en la vista buscar.
Por cierto, en caso de que pueda verse algo en la página buscar, ¿cómo podría hacer que busque con el método show del controlador y me mostrara el resultado en show.blade.php?
En el index tengo la rejilla y en la primera fila he creado una tabla con dos celdas, una con el título de la tabla y un botón "buscar", y otra con un botón "nuevo".
Me han pedido que al pulsar ese botón me lleve a una página donde introduzca los datos del registro a buscar.
Así que he hecho el formulario en la vista "buscar.blade.php" y el código php en la vista "show.blade.php".
El problema es que al darle al botón buscar me va a la página, pero no me muestra nada, ni siquiera el html.
Estos son los códigos que he escrito:
En routes.php:
1
2
3
4
Route::get('/',function () {
return view('productos/index');
});
Route::view('productos/buscar','productos.buscar');
1
<td colspan=3 align="center"><b>PRODUCTOS</b><a href="{{ 'productos/buscar' }}" class="btn btn-info" style="text-align:right">BUSCAR</a></td>
1
2
3
4
public function show($id){
$producto=\App\Producto::find($id);
return view('productos.show')->with('producto',$producto);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html lang="en">
<head>
<title>Buscar Producto</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class='container'>
<div class='jumbotron'>
<h1>Buscar Producto</h1>
<p>Introduce todos los datos para buscar un producto en la base de datos.</p>
</div>
<form name='formulariobuscar' action='{{ 'productos/show' }}' method='get'>
<div class='form-group'>
{{csrf_field()}}
<label for='id'>Introduce el id del producto:</label>
<input type='number' class='form-control' placeholder='Introduce el id' name='id' value="<?php $id ?>"><br>
<label for='id'>Introduce el nombre del producto:</label>
<input type='text' class='form-control' placeholder='Introduce el nombre' name='nombre' value="<?php $nombre ?>" size=30><br>
<label for='precio'>Introduce el precio del producto:</label>
<input type='decimal' class='form-control' placeholder='Introduce el precio' name='precio' value="<?php $precio ?>"><br>
</div>
<div class='botons-group'>
<input type='submit' name='buscar' value='BUSCAR'>
<input type='submit' name='volver' value='VOLVER'>
</div>
</form>
</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
function conectar(){
$con=mysqli_connect("localhost","root","","dam2d-laravel");
return $con;
}
function desconectar(){
mysqli_close(conectar());
}
conectar();
$id=isset($_GET['id']) ? $_GET['id'] : '';
$nombre=isset($_GET['nombre']) ? $_GET['nombre'] : '';
$precio=isset($_GET['precio']) ? $_GET['precio'] : '';
function buscar(){
$id=$_GET['id'];
$nombre=$_GET['nombre'];
$precio=$_GET['precio'];
$esta=false;
if(conectar()->connect_error){
die('Error de conexion: '.conectar()->connect_error);
}else{
$sql="SELECT * FROM productos WHERE nombre='".$nombre."'";
$resul=mysqli_query(conectar(),$sql);
echo "<table class='table' border='1'>";
echo "<tr><td colspan=4 align='center' <b>ARTICULOS</b></td></tr>";
echo "<tr><th>ID</th><th>Nombre</th><th>Precio</th><th>Acciones</th></tr>";
while($linea=mysqli_fetch_array($resul)){
$esta=true;
}
if($esta==false){
echo "No existe un articulo con el nombre ".$nombre;
}else{
echo "<tr>";
echo "<td>",$id,"</td>";
echo "<td>",$nombre,"</td>";
echo "<td>",$precio,"</td>";
echo "<td><a class='btn btn-warning' href='editar.php?id=".$id."&nombre=".$nombre."&precio=".$precio."'>EDITAR</a>"." ";
echo "<a class='btn btn-danger' href='eliminar.php?id=".$id."&nombre=".$nombre."&precio=".$precio."'>ELIMINAR</a></td>";
echo "</tr>";
}
}
}
if(isset($_GET['buscar'])){
buscar();
}
if(isset($_GET['volver'])){
header('Location:index.php');
}
desconectar();
?>
Por cierto, en caso de que pueda verse algo en la página buscar, ¿cómo podría hacer que busque con el método show del controlador y me mostrara el resultado en show.blade.php?
Valora esta pregunta
0