PHP - validar campos

   
Vista:

validar campos

Publicado por zendi (824 intervenciones) el 10/04/2014 03:36:42
estoy tratando de validar estos campos en negrita:
la idea es que si la variable $valor fuese mayor a $monto no permita ejecutar la operacion ya que no es logico restar un valor mayor a uno menor.
El problema es que no esta funcionando.

1
2
3
4
5
6
7
8
9
10
11
12
13
echo "  <tr>
            <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
            <td width='50'><input type='text' value='$cedula' name='cedula' readonly='true'></td>
            <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
            <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='monto' align='right'></td>
            <td width='50'><input type='text' value='$valor' size='8' name='valor'></td>
            
        </tr>
    </table><br>";
if($valor > $monto)
    {
    echo "<script>alert('El monto debe ser menor o igual a la deuda')</script>";
    }
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 Alejandro

validar campos

Publicado por Alejandro (33 intervenciones) el 10/04/2014 04:08:03
intenta poner un: return false

1
2
3
4
5
if($valor > $monto)
{
echo "<script>alert('El monto debe ser menor o igual a la deuda')</script>";
return false;
}


Espero que te sirva...
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 10/04/2014 09:17:07
Hola Zendi, no se entiendo muy bien que quieres hacer, que quieres deshabilitar el botón enviar del formulario? hasta que se cumpla dicha condición?
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

validar campos

Publicado por zendi (824 intervenciones) el 10/04/2014 18:28:48
Hola xve,la idea es que cuando el usuario ponga o coloque un valor mayor al monto de la deuda aparezca el mensaje
echo "<script>alert('El monto debe ser menor o igual a la deuda')</script>"; ya que si no se validara; crearia un valor negativo en la base de datos.
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 10/04/2014 20:55:11
Hola Zendi, de la manera que lo tienes en el código, lo veo un poco extraño...

De todas maneras, para capturar las variables, tendrias que utilizar $_GET o $_POST, no?
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

validar campos

Publicado por zendi (824 intervenciones) el 11/04/2014 01:54:13
Que tal Xve, diria mas bien la comparacion entre ambas variables:
if($valor > $monto) {
echo "<script>alert('El monto debe ser menor o igual a la deuda')</script>";
}
El asunto es que tambien en el titulo me estoy comunicando de manera incorrecta
Saludos.

de todos modos aqui envio el codigo completo:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <script language="JavaScript" src="calendario.js"></script>
      <script language="JavaScript" src="overlib_mini.js"></script>
 
<SCRIPT type="text/javascript">
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,patron,nums){
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]
	}
	if(nums){
		for(z=0;z<val2.length;z++){
		  if(isNaN(val2.charAt(z))){
			letra = new RegExp(val2.charAt(z),"g")
			val2 = val2.replace(letra,"")
		   }
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<patron.length; s++){
		val3[s] = val2.substring(0,patron[s])
		val2 = val2.substr(patron[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
			}
		}
	}
	d.value = val
	d.valant = val
	}
}
</SCRIPT>
 
</head>
<style type="text/css">
  .sr {
    background-color: #FFFFCF;
    color: #000000;
    font-family: Arial;
    font-size: 12px;
  }
  input.color1 {background-color: #00CC99; font-weight: bold; font-size: 12px; color: white;}
 
</style>
<body>
   <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<form  name="form1" action="CancelaDeuda.php" method="post"><fieldset style="width:auto"><LEGEND>Deuda</LEGEND>
<TABLE align="center" class="div1">
 
<TR>
	<td>Fecha:</td>
    <td><input type="text" size=10 maxlength=10 name="fecha" onKeyUp="mascara(this,'-',patron,true)" ; onFocus="siguienteCampo ='direccion'"><a href=javascript:show_calendar('form1.fecha'); onMouseOver="window.status='Date Picker'; overlib('Haga Click aqui para escoger una fecha del calendario.'); return true;" onMouseOut="window.status=''; nd(); return true;"><img src="iconos/calendar.gif" align=center width=24 height=22 border=0></a></td>
</TR>
   <tr>
      <td>C&eacute;dula:</td>
	  <td><input TYPE="text" NAME="cedula" SIZE="10" maxlength="10"></td>
   </tr>
 
   <tr>
      <td><input TYPE="submit" class="color1" NAME="buscar" VALUE="Buscar"></td>
      <td><INPUT class="color1" TYPE="BUTTON" VALUE="Salir" ONCLICK="window.location.href='menu1.php'"></td>
   </TD>
   </tr>
</TABLE>
</fieldset><br />
<?php
if ($_POST['fecha'] && $_POST['cedula'] && $_POST['buscar']):
       $fecha = substr($_POST['fecha'],0,2).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],6,4);
       $anio   = substr($fecha,6,4);
       $mes    = substr($fecha,3,2);
	   $dia    = substr($fecha,0,2);
	   $fechaM = $anio."-".$mes."-".$dia;
     $resultado1 = "SELECT cedula, SUM(monto) as deuda, fecha, nroapto FROM deuda WHERE deuda.fecha = '$fechaM' AND deuda.cedula = '{$_POST['cedula']}' GROUP BY cedula,fecha,nroapto";
       $resultado = @pg_query($connect,$resultado1);
endif;
$valor = 0.00;
//imprime el nombre y apellido
$nombre = "SELECT apellidos,nombres FROM propietarios WHERE propietarios.cedula = '{$_POST['cedula']}'";
$nombre1 = @pg_query($connect,$nombre);
//**********************************
while ($nombre =@pg_fetch_array($nombre1)):
       $apellidos = $nombre['apellidos'];
	   $nombres   = $nombre['nombres'];
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <td width ='50' align='center'>Apellidos
	              <td width ='50' align='center'>Nombres
              </tr>";
           echo "  <tr>
				       <td width ='100'>$apellidos</td>
				       <td width ='100'>$nombres</td>
				   </tr>
    			</table><br>";
endwhile;
//**********************************
while ($seleccionado =@pg_fetch_array($resultado)):
       $nroapto = $seleccionado['nroapto'];
	   $cedula  = $seleccionado['cedula'];
	   $monto   = $seleccionado['deuda'];
	   $fecha   = $seleccionado['fecha'];
       $anio  = substr($fecha,0,4);
       $mes   = substr($fecha,5,2);
	   $día   = substr($fecha,8,2);
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <th>Apartamento
				  <th>Cédula
				  <th>Fecha
				  <th>Deuda
				  <th>Cancelación
              </tr>";
           echo "  <tr>
				       <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
				       <td width='50'><input type='text' value='$cedula' name='cedula' readonly='true'></td>
				       <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
				       <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='monto' align='right'></td>
				       <td width='50'><input type='text' value='$valor' size='8' name='valor'></td>
 
				   </tr>
    			</table><br>";
    		          if($valor > $monto)
		                  {
                           echo "<script>alert('El monto debe ser menor o igual a la deuda')</script>";
                          }

           echo"<input type='submit' class='color1' name='action' value='Enviar' align='right'>";
endwhile;

                 if (isset($_POST['action']) and isset($_POST['fecha'])):
				    $fecha2 = substr($_POST['fecha'],6,4).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],0,2);
					$totalmes = $_POST['monto']-$_POST['valor'];
					$valor = $_POST['valor'];
                    $actualiza = "UPDATE deuda set monto=$totalmes WHERE deuda.cedula = '{$_POST['cedula']}' and deuda.fecha = '$fecha2'";
                    $connect2 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
                    $cambiar = @pg_query($connect2,$actualiza);
///Proceso que crea los ingresos
                    $condominio = 'Condominio';
                    $valor = $_POST['valor'];
					$hora =time();
                   if (isset($fecha2) and isset($condominio) and isset($valor)):
                      $connect3 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
					  $cancelado = "INSERT INTO administra.public.ingresos(fecha,descripcion,monto,hora) VALUES ('$fecha2',UPPER('$condominio'),$valor,$hora)";
                      $cancelar = @pg_query($connect3,$cancelado);
                      echo("<script type='text/javascript'>window.location='CancelaDeuda.php'; </script>");
                      header("Location:CancelaDeuda.php");
                   endif;
                endif;
?>
</form>
</body>
</html>
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 11/04/2014 09:52:23
Zendi, encima de tu linea:
1
if($valor > $monto)
haz pon esto:
1
exit($valor." > ".$monto);

Veras que valor tienes 0 y monto tiene el valor de la base de datos...
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

validar campos

Publicado por zendi (824 intervenciones) el 12/04/2014 20:27:34
buen dia Xve, coloque el trozo de codigo y aparece esto:
0 > 5000.00,
pero en el momento cuando el usuario coloca una cifra mayor en este caso a 5000.00 no pasa por el if. No pasa por la rutina.
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 12/04/2014 22:02:53
Fijate, que $valor siempre vale 0... eso quiere decir, que no coges el valor de la variable... y por consiguiente, 0 nuenca es superior a 5000 por lo que no entra en el if()...

Si te fijas, el valor 5000 no es el que pone el usuario en la casilla.
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

validar campos

Publicado por zendi (824 intervenciones) el 13/04/2014 02:48:22
Que tal xve, te aclaro que despues le paso un valor y ya es diferente, por supuesto tienes razon; pero eso que me dices ocurre es cuando cargo el formulario por primera vez.

Pero yo estoy desarrollando esta funcion:
1
2
3
4
5
6
7
8
function validar2campos(form1)
{
    if(form1.valor.value > form1.monto.value)
    {
    alert("El monto debe ser menor o igual a la deuda");
          return true;
    }
}

Pero no esta funcionando, estoy llamandola desde el boton submit, esta trayendo el mensaje alert("El monto debe ser menor o igual a la deuda"); pero aun asi esta haciendo el proceso y deja el monto en negativo en la base de datos. Trata de ver cual es el problema.
envio el codigo completo con la funcion en negrita:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <script language="JavaScript" src="calendario.js"></script>
      <script language="JavaScript" src="overlib_mini.js"></script>
 
<SCRIPT type="text/javascript">
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,patron,nums){
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]
	}
	if(nums){
		for(z=0;z<val2.length;z++){
		  if(isNaN(val2.charAt(z))){
			letra = new RegExp(val2.charAt(z),"g")
			val2 = val2.replace(letra,"")
		   }
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<patron.length; s++){
		val3[s] = val2.substring(0,patron[s])
		val2 = val2.substr(patron[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
			}
		}
	}
	d.value = val
	d.valant = val
	}
}
 
 
function validar2campos(form1)
 
{
 
    if(form1.valor.value > form1.monto.value)
 
 
    {
 
    alert("El monto debe ser menor o igual a la deuda");
          return true;
    }
}
</SCRIPT>
 
</head>
<style type="text/css">
  .sr {
    background-color: #FFFFCF;
    color: #000000;
    font-family: Arial;
    font-size: 12px;
  }
  input.color1 {background-color: #00CC99; font-weight: bold; font-size: 12px; color: white;}
 
</style>
<body>
   <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<form  name="form1" action="CancelaDeuda.php" method="post"><fieldset style="width:auto"><LEGEND>Deuda</LEGEND>
<TABLE align="center" class="div1">
 
<TR>
	<td>Fecha:</td>
    <td><input type="text" size=10 maxlength=10 name="fecha" onKeyUp="mascara(this,'-',patron,true)" ; onFocus="siguienteCampo ='direccion'"><a href=javascript:show_calendar('form1.fecha'); onMouseOver="window.status='Date Picker'; overlib('Haga Click aqui para escoger una fecha del calendario.'); return true;" onMouseOut="window.status=''; nd(); return true;"><img src="iconos/calendar.gif" align=center width=24 height=22 border=0></a></td>
</TR>
   <tr>
      <td>C&eacute;dula:</td>
	  <td><input TYPE="text" NAME="cedula" SIZE="10" maxlength="10"></td>
   </tr>
 
   <tr>
      <td><input TYPE="submit" class="color1" NAME="buscar" VALUE="Buscar"></td>
      <td><INPUT class="color1" TYPE="BUTTON" VALUE="Salir" ONCLICK="window.location.href='menu1.php'"></td>
   </TD>
   </tr>
</TABLE>
</fieldset><br />
<?php
if ($_POST['fecha'] && $_POST['cedula'] && $_POST['buscar']):
       $fecha = substr($_POST['fecha'],0,2).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],6,4);
       $anio   = substr($fecha,6,4);
       $mes    = substr($fecha,3,2);
	   $dia    = substr($fecha,0,2);
	   $fechaM = $anio."-".$mes."-".$dia;
     $resultado1 = "SELECT cedula, SUM(monto) as deuda, fecha, nroapto FROM deuda WHERE deuda.fecha = '$fechaM' AND deuda.cedula = '{$_POST['cedula']}' GROUP BY cedula,fecha,nroapto";
       $resultado = @pg_query($connect,$resultado1);
endif;
$valor = 0.00;
//imprime el nombre y apellido
$nombre = "SELECT apellidos,nombres FROM propietarios WHERE propietarios.cedula = '{$_POST['cedula']}'";
$nombre1 = @pg_query($connect,$nombre);
//**********************************
while ($nombre =@pg_fetch_array($nombre1)):
       $apellidos = $nombre['apellidos'];
	   $nombres   = $nombre['nombres'];
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <td width ='50' align='center'>Apellidos
	              <td width ='50' align='center'>Nombres
              </tr>";
           echo "  <tr>
				       <td width ='100'>$apellidos</td>
				       <td width ='100'>$nombres</td>
				   </tr>
    			</table><br>";
endwhile;
//**********************************
while ($seleccionado =@pg_fetch_array($resultado)):
       $nroapto = $seleccionado['nroapto'];
	   $cedula  = $seleccionado['cedula'];
	   $monto   = $seleccionado['deuda'];
	   $fecha   = $seleccionado['fecha'];
       $anio  = substr($fecha,0,4);
       $mes   = substr($fecha,5,2);
	   $día   = substr($fecha,8,2);
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <th>Apartamento
				  <th>Cédula
				  <th>Fecha
				  <th>Deuda
				  <th>Cancelación
              </tr>";
           echo "  <tr>
				       <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
				       <td width='50'><input type='text' value='$cedula' name='cedula' readonly='true'></td>
				       <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
				       <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='monto' align='right'></td>
				       <td width='50'><input type='text' value='$valor' size='8' name='valor'></td>
				   </tr>
    			</table><br>";
				
 echo"<input type='submit' class='color1' name='action' value='Enviar' align='right' onClick='validar2campos(this.form)'>";
endwhile;

                 if (isset($_POST['action']) and isset($_POST['fecha'])):
				    $fecha2 = substr($_POST['fecha'],6,4).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],0,2);
					$totalmes = $_POST['monto']-$_POST['valor'];
					$valor = $_POST['valor'];
                    $actualiza = "UPDATE deuda set monto=$totalmes WHERE deuda.cedula = '{$_POST['cedula']}' and deuda.fecha = '$fecha2'";
                    $connect2 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
                    $cambiar = @pg_query($connect2,$actualiza);
///Proceso que crea los ingresos
                    $condominio = 'Condominio';
                    $valor = $_POST['valor'];
					$hora =time();
                   if (isset($fecha2) and isset($condominio) and isset($valor)):
                      $connect3 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
					  $cancelado = "INSERT INTO administra.public.ingresos(fecha,descripcion,monto,hora) VALUES ('$fecha2',UPPER('$condominio'),$valor,$hora)";
                      $cancelar = @pg_query($connect3,$cancelado);
                      echo("<script type='text/javascript'>window.location='CancelaDeuda.php'; </script>");
                      header("Location:CancelaDeuda.php");
                   endif;
                endif;
?>
</form>
</body>
</html>
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

validar campos

Publicado por zendi (824 intervenciones) el 13/04/2014 03:09:20

envio tambien la figura del formulario
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 13/04/2014 10:19:42
Hola Zendi, este código ya lo has cambiado, ya que veo que has puesto: $valor = $_POST['valor'];
lo que ahora no esta el condicional que fallaba, no?
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

validar campos

Publicado por zendi (824 intervenciones) el 13/04/2014 22:20:05
Hola Xve, claro ya el condicional no va, estoy intentando resolver el problema con una funcion, en el codigo esta en negrita tanto la funcion asi como la llamada de la funcion, pero el asunto es que hay algo mal dentro de la funcion que no ejecuta la accion. Mientras tanto yo ire resolviendo el problema, no me abandones en esta cruzada.
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

validar campos

Publicado por zendi (824 intervenciones) el 13/04/2014 23:19:02
Hola xve, ya resolvi el problema, pero surge otro factor o disyuntiva; ¿como haria para volver el enfoque al campo tipo text una vez que le doy Aceptar en el boton del mensaje de advertencia?

esta es la funcion;
1
2
3
4
5
6
7
8
9
10
function validar2campos(form1)
 
{
 
    if(form1.valor.value > form1.monto.value)
    {
    alert("El monto de cancelacion debe ser menor o igual a la deuda");
        return true;
    }
}

y aqui hago la llamada de la funcion:
tanto en el objeto text y el submit

1
<td width='50'><input type='text' value='$valor' size='8' name='valor' onBlur='validar2campos(this.form)'></td>

1
echo"<input type='submit' class='color1' name='action' value='Enviar' align='right' onClick='validar2campos(this.form)'>";
la verdad no puedo controlar esta situacion.
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 14/04/2014 08:24:26
Hola Zendi, para ello, se utiliza la función focus()... algo así:
1
document.getElementById("idElemento").focus();

Para este ejemplo, tiene que existir el id idElemento en la casilla de texto donde quieres que se ponga el foco...
1
<input type="text" id="idElemento">

Coméntanos si de esta manera te sirve.
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

validar campos

Publicado por zendi (824 intervenciones) el 15/04/2014 15:49:01
te comento Xve,
coloque el focus() asi en la funcion:
1
2
3
4
5
6
7
8
9
10
11
function validar2campos(form1)
 
{
 
    if(form1.valor.value > form1.monto.value)
    {
    alert("El monto de cancelacion debe ser menor o igual a la deuda");
    document.getElementById(idElemento).focus();
        return true;
    }
}

y en el tipo text:
1
<td width='50'><input type='text' value='$valor' size='8' name='valor' onBlur='validar2campos(this.form)' id='idElemento'></td>
pero no lo hace. Una vez que presiono aceptar en el mensaje el enfoque se queda en el boton submit.
tal vez hay un error, que no veo.
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 15/04/2014 16:40:19
Hola Zendi, idElemento va entre comillas, ya que no es una variable...
1
document.getElementById("idElemento").focus();
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

validar campos

Publicado por zendi (824 intervenciones) el 15/04/2014 18:23:40
Habra que crear otro post? pero te comento que lo hice tal como dijiste
pero continua el problema no da el enfoque:
1
2
3
4
5
6
7
8
9
function validar2campos(form1)
{
    if(form1.valor.value > form1.monto.value)
    {
    alert("El monto de cancelacion debe ser menor o igual a la deuda");
    document.getElementById("idElemento").focus();
        return true;
    }
}
y en el input type text:

1
2
<td width='50'><input type='text' value='$valor' size='8' name='valor'
onBlur='validar2campos(this.form)' id='idElemento'></td>
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 15/04/2014 19:04:31
Hola Zendi, prueba este simple código, veras que te funciona...

1
2
3
4
5
6
7
8
9
<script>
function ponerFoco()
{
    document.getElementById("idElemento").focus();
}
</script>
 
<input type='text' value='' size='8' name='valor' id='idElemento'>
<input type="button" value="pulsa para mover el foco" onclick="ponerFoco()">

Coméntanos, ok?
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

validar campos

Publicado por zendi (824 intervenciones) el 16/04/2014 19:18:57
Hola Xve. Ahora si lo hace, presenta el mensaje, presiono el boton submit del formulario, luego aparece el mensaje señalando que el valor es mayor, despues presiono sobre el mensaje y enfoca en el type text por fracciones de segundos si lo enfoca pero no lo deja enfocado se pierde y ejecuta la accion restando una cantidad mayor sobre el monto menor, afectando la base de datos. Aclaro que estoy utilizando el boton de mi formulario, el que me enviaste por supuesto lo hace.

envio una forma en como se presenta,
esto es una locura, te explico cuando trato de restar la cantidad de 1000.00 a 900.00 no lo evalua.
es terrible este codigo.
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

validar campos

Publicado por zendi (824 intervenciones) el 17/04/2014 03:31:58
Que tal Xve. La verdad no funciona aqui te envio el codigo para que lo revises:
por favor ayudame con este codigo.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <script language="JavaScript" src="calendario.js"></script>
      <script language="JavaScript" src="overlib_mini.js"></script>
 
<SCRIPT type="text/javascript">
var patron = new Array(2,2,4)
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,patron,nums){
if(d.valant != d.value){
	val = d.value
	largo = val.length
	val = val.split(sep)
	val2 = ''
	for(r=0;r<val.length;r++){
		val2 += val[r]
	}
	if(nums){
		for(z=0;z<val2.length;z++){
		  if(isNaN(val2.charAt(z))){
			letra = new RegExp(val2.charAt(z),"g")
			val2 = val2.replace(letra,"")
		   }
		}
	}
	val = ''
	val3 = new Array()
	for(s=0; s<patron.length; s++){
		val3[s] = val2.substring(0,patron[s])
		val2 = val2.substr(patron[s])
	}
	for(q=0;q<val3.length; q++){
		if(q ==0){
			val = val3[q]
		}
		else{
			if(val3[q] != ""){
				val += sep + val3[q]
			}
		}
	}
	d.value = val
	d.valant = val
	}
}
 
 
function validar2campos()
{
    if(form1.valor.value > form1.monto.value)
    {
      alert("El monto de cancelacion debe ser menor o igual a la deuda");
      document.getElementById("idElemento").focus();
    }
}
//function ponerFoco() {
//    if(form1.valor.value > form1.monto.value)
//      {
//      alert("El monto de cancelacion debe ser menor o igual a la deuda");
//      document.getElementById("idElemento").focus(); 
//      }
//	}
 
</SCRIPT>
 
</head>
<style type="text/css">
  .sr {
    background-color: #FFFFCF;
    color: #000000;
    font-family: Arial;
    font-size: 12px;
  }
  input.color1 {background-color: #00CC99; font-weight: bold; font-size: 12px; color: white;}
 
</style>
<body>
   <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<form  name="form1" action="CancelaDeuda.php" method="post"><fieldset style="width:auto"><LEGEND>Deuda</LEGEND>
<TABLE align="center" class="div1">
 
<TR>
	<td>Fecha:</td>
    <td><input type="text" size=10 maxlength=10 name="fecha" onKeyUp="mascara(this,'-',patron,true)" ; onFocus="siguienteCampo ='direccion'"><a href=javascript:show_calendar('form1.fecha'); onMouseOver="window.status='Date Picker'; overlib('Haga Click aqui para escoger una fecha del calendario.'); return true;" onMouseOut="window.status=''; nd(); return true;"><img src="iconos/calendar.gif" align=center width=24 height=22 border=0></a></td>
</TR>
   <tr>
      <td>C&eacute;dula:</td>
	  <td><input TYPE="text" NAME="cedula" SIZE="10" maxlength="10"></td>
   </tr>
 
   <tr>
      <td><input TYPE="submit" class="color1" NAME="buscar" VALUE="Buscar"></td>
      <td><INPUT class="color1" TYPE="BUTTON" VALUE="Salir" ONCLICK="window.location.href='menu1.php'"></td>
   </TD>
   </tr>
</TABLE>
</fieldset><br />
<?php
if ($_POST['fecha'] && $_POST['cedula'] && $_POST['buscar']):
       $fecha = substr($_POST['fecha'],0,2).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],6,4);
       $anio   = substr($fecha,6,4);
       $mes    = substr($fecha,3,2);
	   $dia    = substr($fecha,0,2);
	   $fechaM = $anio."-".$mes."-".$dia;
     $resultado1 = "SELECT cedula, SUM(monto) as deuda, fecha, nroapto FROM deuda WHERE deuda.fecha = '$fechaM' AND deuda.cedula = '{$_POST['cedula']}' GROUP BY cedula,fecha,nroapto";
       $resultado = @pg_query($connect,$resultado1);
endif;
$valor = 0.00;
//imprime el nombre y apellido
$nombre = "SELECT apellidos,nombres FROM propietarios WHERE propietarios.cedula = '{$_POST['cedula']}'";
$nombre1 = @pg_query($connect,$nombre);
//**********************************
while ($nombre =@pg_fetch_array($nombre1)):
       $apellidos = $nombre['apellidos'];
	   $nombres   = $nombre['nombres'];
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <td width ='50' align='center'>Apellidos
	              <td width ='50' align='center'>Nombres
              </tr>";
           echo "  <tr>
				       <td width ='100'>$apellidos</td>
				       <td width ='100'>$nombres</td>
				   </tr>
    			</table><br>";
endwhile;
//**********************************
while ($seleccionado =@pg_fetch_array($resultado)):
       $nroapto = $seleccionado['nroapto'];
	   $cedula  = $seleccionado['cedula'];
	   $monto   = $seleccionado['deuda'];
	   $fecha   = $seleccionado['fecha'];
       $anio  = substr($fecha,0,4);
       $mes   = substr($fecha,5,2);
	   $día   = substr($fecha,8,2);
		  $valor = number_format($valor,2,',','.');
		  $monto = number_format($monto,2,',','.');
	   echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
	          <tr class='sr'>
	              <th>Apartamento
				  <th>Cédula
				  <th>Fecha
				  <th>Deuda
				  <th>Cancelación
              </tr>";
           echo "  <tr>
		       <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
		       <td width='50'><input type='text' value='$cedula' name='cedula' readonly='true'></td>
		       <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
		       <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='monto' align='right'></td>
               <td width='50'><input type='text' value='$valor' size='8' name='valor' id='idElemento'></td>
				   </tr>
    			</table><br>";
echo"<input type='submit' class='color1' name='action' value='Enviar' align='right' onClick='validar2campos()'>";
endwhile;


                 if (isset($_POST['action']) and isset($_POST['fecha'])):
				    $fecha2 = substr($_POST['fecha'],6,4).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],0,2);
					$totalmes = $_POST['monto']-$_POST['valor'];
					$valor = $_POST['valor'];
                    $actualiza = "UPDATE deuda set monto=$totalmes WHERE deuda.cedula = '{$_POST['cedula']}' and deuda.fecha = '$fecha2'";
                    $connect2 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
                    $cambiar = @pg_query($connect2,$actualiza);
///Proceso que crea los ingresos
                    $condominio = 'Condominio';
                    $valor = $_POST['valor'];
					$hora =time();
                   if (isset($fecha2) and isset($condominio) and isset($valor)):
                      $connect3 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
					  $cancelado = "INSERT INTO administra.public.ingresos(fecha,descripcion,monto,hora) VALUES ('$fecha2',UPPER('$condominio'),$valor,$hora)";
                      $cancelar = @pg_query($connect3,$cancelado);
                      echo("<script type='text/javascript'>window.location='CancelaDeuda.php'; </script>");
                      header("Location:CancelaDeuda.php");
                   endif;
                endif;
?>
</form>
</body>
</html>
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 xve

validar campos

Publicado por xve (5515 intervenciones) el 17/04/2014 11:03:54
Hola Zendi, desde JavaScript, para comparar en formato numerico el valor de un formulario, tienes que pasarlo a entero o float...

prueba cambiar:
1
if(form1.valor.value > form1.monto.value)
por:
1
if(parseInt(form1.valor.value) > parseInt(form1.monto.value))

NOTA: si el valor es float, puedes utilizar parseFloat()

Coméntanos, ok?
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

validar campos

Publicado por zendi (824 intervenciones) el 17/04/2014 22:05:24
Excelente Xve, funciona con el parseInt(), pero el problema ahora es que una vez que coloco un monto mayor,
y presiono el submit,
1
echo"<input type='submit' class='color1' name='action' value='Enviar' align='right' onClick='validar2campos()'>";

se activa la funcion indicando el mensaje "El monto de cancelacion debe ser menor o igual a la deuda" presiono el boton aceptar, pero alli esta el problema; que no sigue enfocando input type text, y sigue su curso y pasa por aqui:
y resta la cantidad mayor sobre la cantida menor dejandola en negativo
ejemplo (200.00 - 100.00) quedando en la base de datos el campo deuda en -100. siendo esto ilogico.
Debiera seguir enfocado hasta que sea mayor la cantidad.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (isset($_POST['action']) and isset($_POST['fecha'])):
				    $fecha2 = substr($_POST['fecha'],6,4).'-'.substr($_POST['fecha'],3,2).'-'.substr($_POST['fecha'],0,2);
					$totalmes = $_POST['monto']-$_POST['valor'];
					$valor = $_POST['valor'];
                    $actualiza = "UPDATE deuda set monto=$totalmes WHERE deuda.cedula = '{$_POST['cedula']}' and deuda.fecha = '$fecha2'";
                    $connect2 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
                    $cambiar = @pg_query($connect2,$actualiza);
///Proceso que crea los ingresos
                    $condominio = 'Condominio';
                    $valor = $_POST['valor'];
					$hora =time();
                   if (isset($fecha2) and isset($condominio) and isset($valor)):
                      $connect3 = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
					  $cancelado = "INSERT INTO administra.public.ingresos(fecha,descripcion,monto,hora) VALUES ('$fecha2',UPPER('$condominio'),$valor,$hora)";
                      $cancelar = @pg_query($connect3,$cancelado);
                      echo("<script type='text/javascript'>window.location='CancelaDeuda.php'; </script>");
                      header("Location:CancelaDeuda.php");
                   endif;
                endif;
Nota: este trozo de codigo es lo que sigue despues del submit.
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

validar campos

Publicado por zendi (824 intervenciones) el 18/04/2014 18:00:43
Hola Xve, el problema es que cuando se presiona el submit el input type text pierde el enfoque. Debe mantener el enfoque hasta que la cantidad sea igual o menor. ¿Como se pudiera controlar esto? La verdad estoy muy liado en esto. No veo la solucion.
Saludos.
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