PHP - boton guardar y boton añadir en HTML,PHP, JAVASCRIPT Y MYSQL

 
Vista:
Imágen de perfil de Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

boton guardar y boton añadir en HTML,PHP, JAVASCRIPT Y MYSQL

Publicado por Antonio (42 intervenciones) el 22/09/2018 00:42:30
hola a todos

tengo un embrollo con un formulario, tengo un formulario llamado form_validacion.PHP donde lleno varios text box y tengo dos botones uno me funciona para agregar (el usuario puede contestar varias veces el formulario y llena una tabla en la misma pagina y regresa la variable $_Proceso) y otro para continuar (me manda a otra pagina y tiene que mandar la variable $_Proceso) cabe mencionar que los botones también tienen funciones de javascript.

este es mi formulario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form class="form-horizontal form-label-left" action="PHP/GuardarMetodoque.php" method="POST" novalidate>
   <!--    codigo de formulario -->
 
   <div class="form-group">
     <div class="btn-group btn-group-lg">
        <button class="btn btn-primary" onclick="return continuar();">Continuar</button>
        <button type="submit" class="btn btn-primary" onclick="return continuar();">Continuar</button>
        <input type="hidden" name="metodoque" value="metodoque" />
        <button type="submit" class="btn btn-primary" onclick="return continuar();">Añadir Riesgo</button>
        <input type="hidden" name="Anadirriesgo1" value="Anadirriesgo1" />
        <input type="hidden" name="ID_proceso" value="<?php echo $_id; ?>">
        <input type="button" class="btn btn-primary" value="Regresar" onclick="history.back(-1)" />
     </div>
   </div>
</form>

como ven en el form llamo al archivo PHP/GuardarMetodoque.php que este tiene la funcion para guardar el formulario regresar a mi pagina form_validacion.PHP y regresar la variable $_Id_Proceso

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
<?php
require_once 'conexion.php';
$_Anadir_Riesgo_que = stripslashes($_POST["Anadirriesgo1"]);
 
 
if  (isset($_Anadir_Riesgo_que) && $_Anadir_Riesgo_que == "Anadirriesgo1")
{
    $ID_Proceso = stripslashes($_POST["ID_proceso"]);
    $ID_QUE = stripslashes($_POST["ID_QUE"]);
    $_que = stripslashes($_POST["que"]);
    $_Riesgo = stripslashes($_POST["riesgo_que"]);
    $_criticidad = stripslashes($_POST["Criticidad"]);
    $_Ocurrencia = stripslashes($_POST["Ocurrencia"]);
    $_Reaccion = stripslashes($_POST["Reaccion"]);
    $_Valor = stripslashes($_POST[""]);
    $_Decision = stripslashes($_POST["Decision"]);
    $_Plan_Accion = stripslashes($_POST["Plan_Accion"]);
    $query = "INSERT INTO riesgo_metodo_que (Id_Proceso,Id_Metodo,que,Riesgo, Criticidad, Ocurrencia, Reaccion, Valor, Decision, Plan_Accion)
    VALUES ('$ID_Proceso', '$ID_QUE', '$_que', '$_Riesgo', '$_criticidad', '$_Ocurrencia', '$_Reaccion', '$_Valor', '$_Decision', '$_Plan_Accion'); ";
    $result = $conn->query($query);
    if (!$result) die($conn->error);
    header("Location: ../form_validation.php?varG=$ID_Proceso");
    exit;
}
 
?>

esto funciona bien solo que aquí se complica la cuestión, al dar el boton continuar me manda nueva mente a llamar el archivo PHP/GuardarMetodoque.php y de igual tengo este código para recuperar la variable $_Proceso
después de guardar el formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$_ID_proceso = (isset($_GET['varG'])?stripslashes($_GET['varG']):"0");
$query = "SELECT proceso.id,proceso.Nombre_proceso FROM proceso
        INNER JOIN riesgo_metodo_que ON proceso.id = riesgo_metodo_que.Id_Proceso
        WHERE riesgo_metodo_que.Id_Proceso = ".$_ID_proceso."";
$result = $conn->query($query);
if (!$result) die($conn->error);
 
while ($_row = mysqli_fetch_array($_result)){
    $_proceso = $_row["proceso.Nombre_proceso"];
    $_id = $_row["proceso.id"];
}
?>

y este código me sirve para recuperar la variable $_Proceso cuando entro al formulario

1
2
3
4
5
6
7
8
9
10
11
<?php
$_proceso = (isset($_GET['var'])?stripslashes($_GET['var']):"");
$query = "SELECT id,Nombre_proceso FROM proceso WHERE Nombre_proceso = '$_proceso'";
$_result = $conn->query($query);
if (!$_result) die($conn->error);
 
while ($_row = mysqli_fetch_array($_result)){
    $_proceso = $_row["Nombre_proceso"];
    $_id = $_row["id"];
}
?>

y aquí esta otro problema cuando guardo varios formularios y doy clic en el botón añadir ya no me regresa la variable $_Proceso.

si me pueden ayudar para resolver este embrollo en el que estoy metido.
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: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

boton guardar y boton añadir en HTML,PHP, JAVASCRIPT Y MYSQL

Publicado por Gonzalo (615 intervenciones) el 22/09/2018 02:49:25
otro codigo interesante.

Mira, en lo personal uso Javascript para actualizar algunas areas de una pagina, de hecho uso JQuery que al final es lo mismo que javascript, esto para no refrescar toda la pagina cada vez que se elige una opcion o se activa algun checkbox o cambia un radiobutton, lo demas lo dejo al post y lo proceso con php, pero asi programo yo asi que no me hagas caso.

bien, al dar click a submit llamas a la funcion continuar y al mismo tiempo llamas al post (corrijan me si estoy mal)

asi que ... no le veo el caso a este post con el if y el stripslashes:

1
2
$_Anadir_Riesgo_que = stripslashes($_POST["Anadirriesgo1"]);
if  (isset($_Anadir_Riesgo_que) && $_Anadir_Riesgo_que == "Anadirriesgo1")

yo evaluaria el post y es todo ya que doy por hecho que si existe ese hidden entonces debe valer Anadirriesgo1.

1
if ($_POST["Anadirriesgo1"])

para el caso de php el post unicamente va a tomar los objetos que esten dentro del <form> y tengan "Name", asi que segun yo unicamente recuperas:

metodoque
Anadirriesgo1
ID_proceso

asi que la pregunta logica seria: donde estan estos objetos?

1
2
3
4
5
6
7
8
9
$ID_QUE = stripslashes($_POST["ID_QUE"]);
$_que = stripslashes($_POST["que"]);
$_Riesgo = stripslashes($_POST["riesgo_que"]);
$_criticidad = stripslashes($_POST["Criticidad"]);
$_Ocurrencia = stripslashes($_POST["Ocurrencia"]);
$_Reaccion = stripslashes($_POST["Reaccion"]);
$_Valor = stripslashes($_POST[""]);
$_Decision = stripslashes($_POST["Decision"]);
$_Plan_Accion = stripslashes($_POST["Plan_Accion"]);

si existen en el form entonces no hay problema, pero si estas usando el form del ejemplo entonces todos esos valores estan en blanco o nulos.

regresas el id por GET, eso es algo ... 99.99% inseguro porque pueden mandar pedir el id que quieran no el que se proceso, te recomendaria pasar el get encryptado

cuando llamas un select usualmente deberia existir un solo ID por cliente, digo usual porque si tienes varios registros con el mismo id en un update o en un delete se acualizan o borran todos los registros con ese id, pero depende si tienes indexado el id y marcado como IdUnico, pero eso es mas relacionado con la base de datos que con php.

el caso es que si es un id unico no tiene caso usar un while para 1 solo registro,

1
2
3
4
5
while ($_row = mysqli_fetch_array($_result))
{
    $_proceso = $_row["proceso.Nombre_proceso"];
    $_id = $_row["proceso.id"];
}

yo usaria el if().

1
2
3
4
5
if ($_row = mysqli_fetch_array($_result))
{
    $_proceso = $_row["proceso.Nombre_proceso"];
    $_id = $_row["proceso.id"];
}


y por ultimo stripslashes lo que hace es satinizar una cadena de texto para convertir posibles scripts de javascript (potencialmente peligrosos) y evitar que destrocen tus bases de datos (entre otras cosas peores), aqui entonces que pasa si en GET escribo algo como esto?

http://tu.pagina.web/form_validation.php?varG="';SET SQL_SAFE_UPDATES = 0;DROP DATABASE;--"

lease varG (igual a) comillas dobles, comilla sencilla, punto y coma, comando mysql para desactivar seguridad en updates o deletes o drops, comando mysql Drop Database (sintieron escalofríos en las plantas de los pies?), punto y coma, signo menos, signo menos.

mis disculpas si respondí a lo que no preguntó, solo quise llamar su atención en estos puntos.

salu2.
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 Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

boton guardar y boton añadir en HTML,PHP, JAVASCRIPT Y MYSQL

Publicado por Antonio (42 intervenciones) el 24/09/2018 16:02:12
las variables

1
2
3
4
5
6
7
8
9
$ID_QUE = stripslashes($_POST["ID_QUE"]);
$_que = stripslashes($_POST["que"]);
$_Riesgo = stripslashes($_POST["riesgo_que"]);
$_criticidad = stripslashes($_POST["Criticidad"]);
$_Ocurrencia = stripslashes($_POST["Ocurrencia"]);
$_Reaccion = stripslashes($_POST["Reaccion"]);
$_Valor = stripslashes($_POST[""]);
$_Decision = stripslashes($_POST["Decision"]);
$_Plan_Accion = stripslashes($_POST["Plan_Accion"]);

si existen están dentro del <FORM> pero omití poner el código por que seria muy extenso.
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
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

boton guardar y boton añadir en HTML,PHP, JAVASCRIPT Y MYSQL

Publicado por Gonzalo (615 intervenciones) el 22/09/2018 02:55:22
olvide mencionar:

de ser posible cambie a PDO.

salu2
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