Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2009, 09:54
Avatar de aliza
aliza
 
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 6
Comprobar si saldrá negativo antes de insertar

Buenas gente. Tengo un pequeño problema, y digo pequeño porque está todo implementado a falta de hacer esta comprobación.
Tengo una base de datos mysql y una aplicación en AJAX.

Mediante un formulario php inserto con AJAX en la tabla los datos 'id' y 'puntos'. Los 'puntos' pueden ser + o -.

Pues bien, se trata de antes de insertar comprobar que la suma de los puntos no saldrá negativa, y en caso de si ser negativa mostrar un mensaje y no insertar.

¿Dónde debo hacer la comprobación? Gracias.

Aquí cuelgo los scripts.

ipuntos2.php
###############################
<?php
session_start();
// Verifica que existe la sesion:
if(!isset($_SESSION['usuario']))
die('Por motivos de seguridad, el acceso no permitido, cierre la aplicaci&oacuten y vuelva a abrirla. Gracias.<br />Departamento Inform&aacutetico .');
$tarjeta=$_GET['tarjeta'];
$_SESSION['tarjeta']=$tarjeta;
$rango=$_SESSION['rango'];

...

?>
<html>
<head>
<title>PROGRAMA DE PUNTOS</title>
<link rel='stylesheet' type='text/css' href='puntos.css' />
<script language="JavaScript" type="text/javascript" src="ajax_puntos.js"></script>
</head>
<body>

<form name="insertar_puntosa" action=""
onsubmit="insertarPuntosA(); return false">
<table align="center" class="blanca">
<tr>
<td align="center" colspan="2"><h4>Abonar Puntos</h4></td>
</tr>
<tr>
<td align="center">Identificador:
<input type="text" name="id" /></td>
</tr>
<tr>
<td align="center"><p>Puntos:
<label>
<input type="text" name="puntos" />
</label>
</p></td>
</tr>
<tr>
<td align="center" colspan="2">Tarjeta:
<label>
<?php echo "<input type='text' name='tarjeta' value='$tarjeta' disabled />" ?>
</label>
</td>
</tr>
<tr>
<td align="center">Notas:
<input type="text" name="notas" /></td>
</tr>
<tr>
<td align="center" colspan="2">
<label>
<input type="submit" name="Submit" value="Insertar" />
</label>
</td>
</tr>
<tr>
<td colspan="2"><div align="center"><?php
echo "<a href='puntos.php'><img alt='Volver' src='volver.png' title='Volver' width='30' height='30' border='0px' /></a>\n";
?></div></td>
</tr>
</form>
<tr>
<td align="center" colspan="2"><div id="resultado"><?php include('ccpuntos.php');?></div></td>
</tr>
</table>
</body>
</html>
###############################

ajax_puntos.js
###############################
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function insertarPuntosA(){
//donde se mostrará lo resultados
divResultado = document.getElementById('resultado');
//valores de los inputs
id=document.insertar_puntosa.id.value;
puntos=document.insertar_puntosa.puntos.value;
tarjeta=document.insertar_puntosa.tarjeta.value;
notas=document.insertar_puntosa.notas.value;

//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod POST
//archivo que realizará la operacion
//registro.php
ajax.open("POST", "aipuntos2.php",true);

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
//llamar a funcion para limpiar los inputs
LimpiarCamposA();
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("id="+id+"&puntos="+puntos+"&tarjeta="+t arjeta+"&notas="+notas)
}
...
###############################

aipuntos2.php
###############################
<?php
session_start();
// Verifica que existe la sesion:
if(!isset($_SESSION['usuario']))
die('Acceso no permitido');
$usuario=$_SESSION['usuario'];
$fecha=date('Y-m-d');
$hora=date('H:i:s');
$tarjeta=$_SESSION['tarjeta'];
//Configuracion de la conexion a base de datos
$bd_host = "localhost";
$bd_usuario = "usuario";
$bd_password = "usuario";
$bd_base = "bd";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
//variables POST
$id=$_POST['id'];
$puntos=((-1)*($_POST['puntos']));
$notas=$_POST['notas'];
$importe=$puntos*100;
//registra los datos del empleados
$sql="INSERT INTO facturas (id,importe,puntos,tarjeta,usuario,fecha,hora,nota s) VALUES ('$id','$importe','$puntos','$tarjeta','$usuario', '$fecha','$hora','$notas')";
mysql_query($sql,$con);
include('ccpuntos.php');
?>
###############################
__________________
Dando cabezados se aprende...