Get al hacer submit
Publicado por Anonymus (17 intervenciones) el 29/01/2020 12:40:06
Al seleccionar un artículo cuyo 'id' en la BBDD es único, me lleva hasta modificar.php?id=12 por ejemplo. Y desde ahí puedo acceder a leer los datos del artículo 12 en este caso. La cuestión es que si doy a submit este se actualiza y pierde el GET, por lo que el formulario no hace referencia a ningún artículo. Entiendo que el formulario al hacer submit pierde ese valor, pero hay alguna manera para no perder el id?
modificar.php
modificar.view.php
modificar.php
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
50
51
52
<?php
session_start();
if (!isset($_SESSION['usuario']) || substr($_SESSION['usuario'], -1) == 2) {
header('Location: index.php');
die();
}
require 'funciones.php';
$resultado = null;
if (isset($_POST['submit'])) {
$conexion = conexion('curso_login', 'root', '');
$error = "";
if (!$conexion) {
// Terminamos con la ejecucion de la pagina si no pudimos conectar.
// Normalmente lo que hariamos es redirigir a una pagina de error.
die();
}
$_POST['titulo'] != "" ?: $error .= "Introduzca título <br/>";
validar_moneda($_POST['precio_neto']) ?: $error .= "El precio no es correcto <br/>";
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES)) {
// La funcion getimagesize nos retorna un arreglo de propiedades de la imagen y si no es una imagen retorna false y un error notice.
// Podemos utilizar el @ antes de la funcion para omitir el notice si no es una imagen.
$check = @getimagesize($_FILES['foto']['tmp_name']);
$check == true ?: $error .= "El archivo no es una imagen o el archivo es muy pesado <br/>";;
if ($error == "") {
$carpeta_destino = 'fotos/';
$archivo_subido = $carpeta_destino . $_FILES['foto']['name'];
move_uploaded_file($_FILES['foto']['tmp_name'], $archivo_subido);
$descuento = ($_POST['precio_neto'] * $_POST['descuento'] / 100);
$statement = $conexion->prepare("UPDATE articulos SET titulo=:titulo, texto=:texto, precio_bruto=:precio_bruto, precio_neto=:precio_neto, iva=:iva, stock=:stock, descuento=:descuento WHERE id=16");
$statement->execute(array(
':titulo' => $_POST['titulo'],
':texto' => $_POST['texto'],
':precio_bruto' => bcdiv($_POST['precio_neto'] - $descuento + (($_POST['precio_neto'] - $descuento) * $_POST['iva'] / 100), 1, 2),
':precio_neto' => $_POST['precio_neto'],
':iva' => $_POST['iva'],
':stock' => $_POST['stock'],
':descuento' => $_POST['descuento']
));
header('Location: index.php');
}
}
}
require 'views/modificar.view.php';
modificar.view.php
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
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link href='https://fonts.googleapis.com/css?family=Slabo+27px' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link rel="shortcut icon" href="imagenes/logo.ico" />
<link rel="stylesheet" href="css/galeria.css">
<title>OriSur</title>
</head>
<body>
<header>
<div class="contenedor">
<h1 class="titulo">Modificar artículo</h1>
</div>
</header>
<div class="contenedor">
<form class="formulario" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<label for="foto">Seleciona foto del artículo</label>
<input type="file" name="foto" id="foto">
<label for="titulo">Titulo de la foto</label>
<input type="text" name="titulo" id="titulo" value="<?php echo $resultado[1] ?>">
<label for="texto">Descripcion:</label>
<textarea name="texto" name="foto" id="texto" placeholder="Ingresa una descripcion de la imagen"><?php echo $resultado[3] ?></textarea>
<label for="precio_neto">Precio neto (€)</label>
<input type="text" name="precio_neto" id="precio_neto" placeholder="00.00" value="<?php echo $resultado[5] ?>">
<label for="iva">IVA</label>
<select name="iva" id="iva">
<option value="10">10%</option>
<option value="21" selected>21%</option>
</select>
<label for="stock">Stock</label>
<input type="number" name="stock" id="stock" onfocus="this.blur()" min="0" value="<?php echo $resultado[7] != null ? $resultado[7] : 5 ?>">
<label for="descuento">Descuento (%)</label>
<input type="number" name="descuento" id="descuento" onfocus="this.blur()" min="0" max="100" value="<?php echo $resultado[8] != null ? $resultado[8] : 0 ?>">
<?php if (isset($error)) : ?>
<p class="error"><?php echo $error; ?></p>
<?php endif; ?>
<input class="submit" type="submit" name="submit" value="Modificar artículo">
</form>
<a class="regresar" href="<?php echo 'foto.php?id=' . $_GET['id'] ?>"><i class="fa fa-long-arrow-left"></i>Volver</a>
</div>
</body>
</html>
Valora esta pregunta


0