1

Buenas, llevo un par de dias con un formulario que utiliza php y mysql y estoy atascado cuando he introducido un boton que quiero que me realice una funcion en php, le pincho al boton y no hace nada, paso el codigo completo

Formulario de registro

<h1 align="center"> <font color="black">Menu de productos</h1>

<!--CREACION DE TABLA-->

<form method="post" action="">

    <table align="center" border="2" cellpadding="20">
        <tr><td bgcolor="#FCF753">

                <p> <font color="brown"> <p align="center"> MODIFICACION DE PRODUCTO


                    <!--MODIFICACION DE PRODUCTO-->

                <p>Inserte el ID:<input type="text" name="ID" size="25" maxlenght="20" >

                    <input type="submit" value="Buscar" name="Buscar">
                    <input type="button" onclick="window.location.href = 'index.php'" value="Volver atras">

                    <?php
                    //BOTON BUSCAR

                    if (isset($_POST['Buscar'])) {

                        $ID = $_POST['ID'];


                        if ($ID != "") {

                            require("conexion.php");

                            $con = conectar();

                            $sql = "SELECT * FROM producto WHERE ID_producto=" . $ID;
                            $result = mysql_query($sql);
                            $fila = mysql_fetch_array($result);

                            if ($fila != "") {
                                ?>

                            <p>Nombre del producto:<input type="text" name="producto" placeholder='<?php echo "$fila[Nombre]"; ?>' >

                            <p>Fecha de inscripcion:<input type="text" name="fecha" placeholder='<?php echo "$fila[Fecha]"; ?>' >

                            <p>Nº de Lote:<input type="text" name="lote" placeholder='<?php echo "$fila[Lote]"; ?>' >

                                <br><br> <input type="button" value="Actualizar producto" name="Actualizar" onclick="funcion();">

                        </td>
                    </tr>
                </table>

            </form>
            <?php
        } else {

            echo '<script language="javascript">alert("Por favor, introduzca una ID existente");</script>';
        }
    } else {

        echo '<script language="javascript">alert("No deje el espacio en blanco ");</script>';
    }
}

function funcion() {
    echo '<script language="javascript">alert("Hola");</script>';


    require("Producto.php");

    $sql = "UPDATE producto SET Nombre = " . $producto . " Fecha = " . $fecha . " Lote = " . $lote;
    $result = mysql_query($sql);
    echo '<script language="javascript">alert("Se actualizo con exito el producto");</script>';
}
?>

  • 1
    El código PHP no queda en el scope de la función que estás definiendo. Se ejecuta sí o sí al imprimir el HTML. – ffflabs Oct 30 '17 at 12:16
  • Pero la funcion la tengo dentro de – Victor Cañizares Oct 30 '17 at 12:27
  • 2
    Ah, ahora veo que `funcion` es una función de PHP. Pero no. No puedes gatillar la función de PHP usando un evento del front. La función `funcion` no está definida en el scope de javascript tampoco. Para gatillar un UPDATE desde el front tendrías que definir la función **en javascript** y dentro de ella usar ajax para llamar a otro script pasándole `$producto` y `$fecha` como parámetros. – ffflabs Oct 30 '17 at 12:32
  • Te recomiendo que leas [¿Por qué no se debe usar la API mysql_* en PHP/MySQL?](https://es.stackoverflow.com/q/75123/250) y que te informes sobre [inyección SQL](https://es.stackoverflow.com/q/10518/250) y [cómo evitarla en PHP](https://es.stackoverflow.com/q/18232/250). El código que compartes presenta vulnerabilidades graves de seguridad, puede sufrir de este tipo de ataques y no debería usarse en un entorno de producción. – Alvaro Montoro Oct 30 '17 at 14:11

0 Answers0