PHP - Mensaje confirmacion

 
Vista:
sin imagen de perfil

Mensaje confirmacion

Publicado por mendizalea (47 intervenciones) el 15/05/2014 12:47:29
Buenos días,

Tengo que un formulario sencillo para introducir 2 datos. Una de ellas es una lista desplegable para seleccionar un numero y el segundo un campo de texto y 2 botones, una de guardar y otra de eliminar.

Me funciona perfectamente lo único quiero darle un punto de seguridad con un mensaje de confirmación (un popup o algo del estilo) donde me muestre los datos que he introducido y un aceptar o cancelar.

Probé en su día con Javascript y el popup me salia perfectamente con los datos pero cuando después le daba aceptar no siempre me guardaba los datos en la base de datos.

Tengo el siguiente codigo para guardar los datos en la tabla:

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
<?php
if(($_POST['guardar']) || ($_POST['borrar']))
	{
		//inicio de sesion
		include("../conexion.php");
		$num=$_POST['numero'];
		$value=$_POST['texto'];
		$ID = $_SESSION["ID"];
		$ID2 = $_SESSION["ID2"];
 
		//CONTROLAR SI LE HEMOS DADO A BORRAR
		if($_POST['borrar']) {
			$value = '';
		}
 
		mysql_query("SET NAMES 'utf8'");
		$sql = "SELECT * FROM Tabla WHERE (((Tabla.ID)='$ID') AND ((Tabla.ID2)='$ID2') AND ((Tabla.num)= '$num'))";
		$queTmp = mysql_query($sql, $conexion);
		$total = mysql_num_rows($queTmp);
 
		if ($total>0) {
			mysql_query("SET NAMES 'utf8'");
			$actualizar = mysql_query("UPDATE Tabla SET valor = '".$value."' WHERE (((Tabla.ID)='$ID') AND ((Tabla.num)= '$num'))");
		}
		else {
			mysql_query("SET NAMES 'utf8'");
			$insertar = "INSERT HIGH_PRIORITY INTO Tabla (ID, ID2, num, valor) ";
			$insertar.= "VALUES ('".$ID."', '".$ID2."', '".$num."', '".$value."')";
			mysql_query($insertar, $conexion);
		}
	}
?>

Algunas veces al hacer click en aceptar en el mensaje de confirmacion guarda correctamente, pero otras veces no guarda y tengo que darle de nuevo a guadar o borrar, aceptar de nuevo el mensaje de confirmacion y lo guarda a la segundo, tercera...

En cambio, sin el mensaje de confirmacion, tal cual lo tengo ahora me guarda correctamente.

Se me esta escapando algo?

Gracias
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mensaje confirmacion

Publicado por xve (6935 intervenciones) el 15/05/2014 17:18:51
Hola Mendizalea, vendo tu código, parece que esta bien, y no deberías de tener mayor problema.

No se muy bien como muestras los datos, ni como haces exactamente cuando se pulsan los botones, pero lo que es muy extraño, es que lo guarde alguna veces, y otra no. Normalmente, cuando un código no funciona, no funciona nunca.

Nos puedes mostrar el código que utilizas para mostrar el mensaje con los botones?
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

Mensaje confirmacion

Publicado por mendizalea (47 intervenciones) el 16/05/2014 10:57:15
Muchas gracias por su respuesta. Estas serian las funciones que tengo de Javascript:

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
function trim(str) {
  return str.replace(/^\s+|\s+$/g, '');
}
 
function processFormAdd()
{
  var num_element = document.getElementById('numero');
  var value_element = document.getElementById('texto');
 
  var num = trim(num_element.value);
  var value = trim(value_element.value);
 
  var data = 'Numero: '+ num + '\Valor: ' + value;
 
  var answer = confirm(data);
 
  if (answer) {
    document.forms["frRegister"].submit();
  }
  else return false
}
 
function processFormDelete()
{
  var num_element = document.getElementById('numero');
 
  var numero = trim(num_element.value);
 
  var data = '¿SEGURO QUE DESEA ELIMINAR?\n\nNumero: ';
 
  data += + numero;
 
  var answer = confirm(data);
 
  if (answer) {
    document.forms["frRegister"].submit();
  }
  else return false
}

El formulario lo tengo asi:
1
<form id="frRegister" name="frRegister" method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">

Y la llamada a la funcion la realizo asi:
1
2
<input type="submit" name="borrar" id="borrar" value="BORRAR" data-icon="delete" onClick="{return processFormDelete();}">
<input type="submit" name="guardar" id="guardar" value="GUARDAR" data-icon="plus" onClick="{return processFormAdd();}">

Acabo de probarlo nuevamente y me hace lo mismo, algunas veces a la primera, otras veces al de 2,3,4...

La pagina esta echa con Jquery mobile.

Muchas gracias
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