PHP - Get al hacer submit

 
Vista:
sin imagen de perfil
Val: 43
Ha aumentado su posición en 10 puestos en PHP (en relación al último mes)
Gráfica de PHP

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 43
Ha aumentado su posición en 10 puestos en PHP (en relación al último mes)
Gráfica de PHP

Get al hacer submit

Publicado por Anonymus (17 intervenciones) el 29/01/2020 12:45:53
Una opción que se me ocurre es crear un hidden con el valor del GET en el html para luego enviarla al post, pero parece muy chapucero...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Get al hacer submit

Publicado por Kathyu (905 intervenciones) el 29/01/2020 15:00:18
Pero es viable. Puede hacer uso de los data de algún elemento pero al final es lo "casi mismo"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar