Foros del Web » Programando para Internet » PHP »

Problema con validación y registro usando PHP y Javascript

Estas en el tema de Problema con validación y registro usando PHP y Javascript en el foro de PHP en Foros del Web. Buen día De ante-mano pido excusas si este no es el lugar correcto para mi pregunta (lo digo porqué tiene que ver con JavaScript) Estoy ...
  #1 (permalink)  
Antiguo 16/04/2012, 13:42
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Problema con validación y registro usando PHP y Javascript

Buen día

De ante-mano pido excusas si este no es el lugar correcto para mi pregunta (lo digo porqué tiene que ver con JavaScript)

Estoy en medio de un proyecto en el que uso PHP, MySQL, un poco de AJAX para las consultas y validaciones de JavaScript y me encontré con un problema a la hora ingresar datos en la tabla...

Les dejo el código...

Código HTML:
<?php
include ("conexion.php");
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP</title>
<script src="ajax.js" type="text/javascript"></script>
<script src="validaciones.js" type="text/javascript"></script>
<script language="javascript">
function mis_datos(){
var key=window.event.keyCode;
if (key < 48 || key > 57){
window.event.keyCode=0;
}}
</script>

<script language="javascript">
function soloNumeros(evt){
if(window.event){// IE
keynum = evt.keyCode;
}else{
keynum = evt.which;
}
if(keynum>47 && keynum<58){
return true;
}else{
return false;
}}
</script>
<script language="javascript">
function soloLetras(evt){
if(window.event){// IE
keynum = evt.keyCode;
}else{
keynum = evt.which;
}
if(keynum>47 && keynum<58){
return false;
}else{
return true;
}}
</script>
</head>
<body>
	<link rel="icon" href="direccion de tu pagina/favicon.ico">
    <form id="cuenta" name="cuenta" method="post" action="administrar.php">
        <div id="consulta">
            <table width="247" border="3" align="center">
                <tr>
                	<td colspan="2"><center>REGISTRO</center></td>
                </tr>
				<tr>
				  <td>Piso</td>
				  <td>
					<select name="piso">
					<option name="0">Seleccione...</option>
					<option name="PP">PISO PRINCIPAL</option>
					<option name="PISO 1">PISO 1</option>
					<option name="PISO 2">PISO 2</option>
					<option name="PISO 3">PISO 3</option>
					<option name="PISO 4">PISO 4</option>
					<option name="PISO 5">PISO 5</option>
					</select>
				  </td>
				</tr>
                <tr >
                    <td>Sector</td>
                    <td>
					  <select name="sector">
					  <option name="0">Seleccione...</option>
					  <option name="POBLADO">POBLADO</option>
					  <option name="AGUACATALA">AGUACATALA</option>
					  <option name="BALSOS">BALSOS</option>
					  <option name="LOMAS">LOMAS</option>
					  </select>
				  </td>
                </tr>
                <tr >
                    <td>N° Local</td>
                    <td><input name="txtlocal" type="text" value=""/></td>
                </tr>
                <tr>
                    <td>Nombre</td>
                    <td><input name="txtnombre" type="text" value=""/></td>
                </tr>
				<tr>
                    <td>Teléfono</td>
                    <td><input name="txttelefono" type="text" value=""/></td>
                </tr>
				<tr>
                    <td>Clasificación</td>
                    <td>
					  <select name="clasificacion">
					  <option name="0">Seleccione...</option>
					  <option name="RESTAURANTE-BAR">RESTAURANTE-BAR</option>
					  <option name="PRODUCTOS COSMÉTICOS">PRODUCTOS COSMÉTICOS</option>
					  <option name="BAR">BAR</option>
					  <option name="HELADOS">HELADOS</option>
					  <option name="CAFÉ">CAFÉ</option>
					  <option name="BANCO">BANCO</option>
					  <option name="CALZADO MASCULINO">CALZADO MASCULINO</option>
					  <option name="CAFÉ BAR">CAFÉ BAR</option>
					  <option name="REPOSTERÍA">REPOSTERÍA</option>
					  <option name="ACCESORIOS">ACCESORIOS</option>
					  <option name="JOYERÍA">JOYERÍA</option>
					  <option name="SUPERMERCADO">SUPERMERCADO</option>
					  <option name="CONCESIONARIO">CONCESIONARIO</option>
					  <option name="ÓPTICA">ÓPTICA</option>
					  <option name="ROPA INFANTIL">ROPA INFANTIL</option>
					  <option name="DROGUERÍA">DROGUERÍA</option>
					  <option name="LIBRERÍA">LIBRERÍA</option>
					  <option name="ROPA">ROPA</option>
					  <option name="CALZADO FEMENINO">CALZADO FEMENINO</option>
					  <option name="ROPA FEMENINA">ROPA FEMENINA</option>
					  <option name="ROPA MASCULINA">ROPA MASCULINA</option>
					  <option name="CALZADO">CALZADO</option>
					  <option name="ROPA DEPORTIVA">ROPA DEPORTIVA</option>
					  <option name="PIJAMAS">PIJAMAS</option>
					  <option name="BOLSOS Y ACCESORIOS">BOLSOS Y ACCESORIOS</option>
					  <option name="CAJERO">CAJERO</option>
					  <option name="TIENDAS POR DEPARTAMENTO">TIENDAS POR DEPARTAMENTO</option>
					  <option name="COLCHONES">COLCHONES</option>
					  </select>
				  </td>
                </tr>
				<tr>
                    <td>NIT</td>
                    <td><input name="txtnit" type="text" value=""/></td>
                </tr>
				<tr>
                    <td>Razón Social</td>
                    <td><input name="txtrazon" type="text" value=""/></td>
                </tr>
				<tr>
                    <td>Marcas</td>
                    <td><input name="txtmarcas" type="text" value=""/></td>
                </tr>
				<tr>
                    <td>Comentarios</td>
                    <td><textarea name="txtcomentarios" ></textarea></td>
                </tr>
				<tr>
				  <td colspan=2 align=center>
					<input type="button" name="btnagregar" id="btnagregar" value="Agregar" onClick="Validar_registro('agregar')" />
					<input type="hidden" name="opcion" id="opcion" />
				  </td>
				</tr>
			</table>
        </div>
		<div id="mensaje"></div>
    </form>
  <div id="cuerpo">
  </div>
</body>
</html> 
Este es el código de la validación por JavaScript:

Código:
// JavaScript Document
function Validar_registro(opcion)
{
	document.cuenta.opcion.value=opcion;
		if (document.cuenta.piso.selectedIndex!=0)
		{
			if(document.cuenta.sector.selectedIndex!=0)
				{
					if (document.cuenta.txtlocal.value.length !=0)
						{
							if(document.cuenta.txtnombre.value.length !=0)
								{
									if(document.cuenta.txttelefono.value.length !=0)
									{
										if(document.cuenta.clasificacion.selectedIndex!=0)
										{
											if(document.cuenta.txtnit.value.length !=0)
											{
												if(document.cuenta.txtrazon.value.length !=0)
												{
													if(document.cuenta.txtmarca.value.length !=0)
													{
									//document.cuenta.submit();
									piso=document.cuenta.piso.selectdIndex;
									sector=document.sector.piso.selectdIndex;
									local=document.cuenta.txtlocal.value;
									nombre=document.cuenta.txtnombre.value;
									telefono=document.cuenta.txttelefono.value;
									clasificacion=document.clasificacion.selectdIndex;
									nit=document.cuenta.txtnit.value;
									razon=document.cuenta.txtrazon.value;
									marca=document.cuenta.txtmarca.value;
									comentarios=document.cuenta.txtcomentarios.value;
									
									ajax_consulta=document.getElementById('mensaje');
									ajax=Ajax();
									ajax.open("POST","administrar.php",true);
									ajax.onreadystatechange=function()
									{
										if(ajax.readyState==4)
										{
											ajax_consulta.innerHTML = ajax.responseText;
											
										}
									}
									ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
									
									ajax.send("piso="+piso+"&sector="+sector+"&txtlocal="+local+"&txtnombre="+nombre+"&txttelefono="+telefono+"&clasificacion="+clasificacion+"&txtnit="+nit+"&txtrazon="+razon+"&txtmarca="+marca+"&txtcomentarios="+comentarios+"&opcion="+opcion+"&tiempo="+ new Date().getTime());
								}
																	else
																	{
																	alert("Ingrese la(s) marca(s) que maneja el local");
																	}
															}
															else
															{
															alert("Ingrese la razón social del local");
															}
													}
													else
													{
													alert("Ingrese el NIT del local");
													}
											}
											else
											{
											alert("Seleccione la clasificación del local");
											}
									}
									else
									{
									alert("Ingrese el teléfono del Local");
									}
							}
							else
								{
								alert("Ingrese el nombre del local ");
								}
						}
					else 
						{
						alert("Ingrese el número del local");
						}
				}
			else
				{
				alert("Seleccione el sector en el que se encuentra el local");
				}
		}
	else
		{
		alert("Seleccione el piso en el que se encuentra el local");
		}
}
Y este es el PHP con el que ingreso los datos:

Código PHP:
<?php

include("conexion.php");

$piso=$_POST["piso"];
$sector=$_POST["sector"];
$numero_local=$_POST["txtlocal"];
$nombre=$_POST["txtnombre"];
$telefono=$_POST["txttelefono"];
$clasificacion=$_POST["txtclasificacion"];
$nit=$_POST["txtnit"];
$razon_social=$_POST["txtrazon"];
$marcas=$_POST["txtmarcas"];
$comentarios=$_POST["txtcomentarios"];



    if (
$opcion=="agregar")
    {
        
$query = ("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas, comentarios) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas','$comentarios');");
        
        
mysql_query($query);
        print 
"El local se registro exitosamente";
            
?>
Mil gracias por su tiempo!
Saludos desde Medellín, Colombia!
  #2 (permalink)  
Antiguo 16/04/2012, 14:08
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con validación y registro usando PHP y Javascript

Obviando el código de validación en Js... debes insertar los datos en la bd de forma correcta, los númericos sin entrecomillar y los alfa entrecomillados, por otro lado las variables se interpretarán como tal solo si van entre comillas dobles o concatenadas:

variable string
Código PHP:
values ('".$piso."'etc... 
variable numérica
Código PHP:
values ("$piso"etc... 
saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 16/04/2012, 14:21
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con validación y registro usando PHP y Javascript

ohhh!! no había visto esto:

<option name="CAFÉ">CAFÉ</option>

en todo caso será:

<option value="CAFÉ">CAFÉ</option>
__________________
Tu álbum de cromos online!!
  #4 (permalink)  
Antiguo 16/04/2012, 15:17
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con validación y registro usando PHP y Javascript

Cita:
Iniciado por santris Ver Mensaje
Obviando el código de validación en Js... debes insertar los datos en la bd de forma correcta, los númericos sin entrecomillar y los alfa entrecomillados, por otro lado las variables se interpretarán como tal solo si van entre comillas dobles o concatenadas:

variable string
Código PHP:
values ('".$piso."'etc... 
variable numérica
Código PHP:
values ("$piso"etc... 
saludos,
Ya lo había probado así, pero tampoco me funciona... Creo que el problema es de recepción de datos a las variables ya que (aunque se que está mal, pero pienso controlarlo por Javascript) todos los campos en la base de datos son varchar...

En administrar.php, en la parte del agregar, le pongo al final que me muestre lo que hay en la variable nombre (echo $nombre;) y no me saca nada... incluso (y no estoy molestando :P) le pongo echo: "waaaa"; y no me sale nada...
  #5 (permalink)  
Antiguo 16/04/2012, 15:18
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con validación y registro usando PHP y Javascript

Cita:
Iniciado por santris Ver Mensaje
ohhh!! no había visto esto:

<option name="CAFÉ">CAFÉ</option>

en todo caso será:

<option value="CAFÉ">CAFÉ</option>
jajajaja sí, tenes toda la razón!! fue el acelere del momento x.x! pero sigue sin funcionar :/

Gracias por tu tiempo bro!
  #6 (permalink)  
Antiguo 18/04/2012, 02:49
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con validación y registro usando PHP y Javascript

Donde cierras este if?
if ($opcion=="agregar")
{
  #7 (permalink)  
Antiguo 18/04/2012, 10:24
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con validación y registro usando PHP y Javascript

Cita:
Iniciado por zalito12 Ver Mensaje
Donde cierras este if?
if ($opcion=="agregar")
{
Disculpame, copie el codigo incompleto...

Código PHP:
 <?php

include("conexion.php");

$piso=$_POST["piso"];
$sector=$_POST["sector"];
$numero_local=$_POST["txtlocal"];
$nombre=$_POST["txtnombre"];
$telefono=$_POST["txttelefono"];
$clasificacion=$_POST["txtclasificacion"];
$nit=$_POST["txtnit"];
$razon_social=$_POST["txtrazon"];
$marcas=$_POST["txtmarcas"];
$comentarios=$_POST["txtcomentarios"];



    if (
$opcion=="agregar")
    {
        
$query = ("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas, comentarios) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas','$comentarios')");
        
        
        
        
mysql_query($query);
        print 
"El local se registro exitosamente";
    
            
?>
        <script language="javascript">
        alert("Ingreso exitoso");
        </script>
<?php
    
}
 if (
$opcion=="modificar")
    {
..................
En el momento, solo estoy con solo con el agregar... Pido excusas...
  #8 (permalink)  
Antiguo 18/04/2012, 10:31
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con validación y registro usando PHP y Javascript

Si pones echo 'aaaaaaaa'; dentro del if y no sale nada es porque no está entrando en ese bloque, o sea, esa condición no se cumple.
Pone echo $opcion; antes del if y mira que valor tiene.
¿Donde declaras la variable $opcion? no lo veo por ningun lado.
  #9 (permalink)  
Antiguo 18/04/2012, 10:54
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con validación y registro usando PHP y Javascript

Cita:
Iniciado por zalito12 Ver Mensaje
Si pones echo 'aaaaaaaa'; dentro del if y no sale nada es porque no está entrando en ese bloque, o sea, esa condición no se cumple.
Pone echo $opcion; antes del if y mira que valor tiene.
¿Donde declaras la variable $opcion? no lo veo por ningun lado.
Este es el mismo archivo que había usado para otro proyecto, solo que lo modifique para la cantidad de campos necesarios... así que por eso no había usado el opción (ya vi el error...), pero ya lo definí, de igual forma, sigue sin funcionar...
También le puse un echo por fuera del if (echo "waaa";) y no me mostró nada... y como me dijiste, acabé de tratar con variables... pero creo que es obvio que no las mostró...

Así se los puse:

Código PHP:
<?php

include("conexion.php");

$piso=$_POST["piso"];
$sector=$_POST["sector"];
$numero_local=$_POST["txtlocal"];
$nombre=$_POST["txtnombre"];
$telefono=$_POST["txttelefono"];
$clasificacion=$_POST["txtclasificacion"];
$nit=$_POST["txtnit"];
$razon_social=$_POST["txtrazon"];
$marcas=$_POST["txtmarcas"];
$comentarios=$_POST["txtcomentarios"];
$opcion=$_POST["opcion"];

echo 
"waaaa";
echo 
$piso;
echo 
$opcion;

    if (
$opcion=="agregar")
    {
        
$query = ("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas, comentarios) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas','$comentarios')");
        
        
        
        
mysql_query($query);
        print 
"El local se registro exitosamente";
    
            
?>
        <script language="javascript">
        alert("Ingreso exitoso");
        </script>
<?php
    
}

    if (
$opcion=="modificar")
    {
.....................................................
  #10 (permalink)  
Antiguo 18/04/2012, 13:59
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema con validación y registro usando PHP y Javascript

Tienes los errores activados? POrque si no te imprime esos echo debería darte error.
El conexion tiene algún fallo? POrque como tienes un include puede estar ahí

EDITO: Por si solicionas el problema yo cambiaría algo en la estructura de tu archivo, usaría algo así:
Código PHP:
    if ($opcion=="agregar"
    { 
        
$query mysql_query("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas, comentarios) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas','$comentarios')"); 
         
         if(
$query) echo "El local se registro exitosamente"
         else echo 
"El local no se registro exitosamente"
Es más apropiado.
  #11 (permalink)  
Antiguo 18/04/2012, 21:32
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con validación y registro usando PHP y Javascript

Cita:
Iniciado por zalito12 Ver Mensaje
Tienes los errores activados? POrque si no te imprime esos echo debería darte error.
El conexion tiene algún fallo? POrque como tienes un include puede estar ahí

EDITO: Por si solicionas el problema yo cambiaría algo en la estructura de tu archivo, usaría algo así:
Código PHP:
    if ($opcion=="agregar"
    { 
        
$query mysql_query("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas, comentarios) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas','$comentarios')"); 
         
         if(
$query) echo "El local se registro exitosamente"
         else echo 
"El local no se registro exitosamente"
Es más apropiado.
Bueh... Buscando y buscando y buscando pues la mejor solución que encontré fue crear otro documento en el que valide desde php que los campos no estén vacíos y en el agregar.php hacer que haga el respectivo redireccionamiento...

lo deje así:

Código PHP:
<?

$piso
=$_POST["piso"];
$sector=$_POST["sector"];
$numero_local=$_POST["txtlocal"];
$nombre=$_POST["txtnombre"];
$telefono=$_POST["txttelefono"];
$clasificacion=$_POST["clasificacion"];
$nit=$_POST["txtnit"];
$razon_social=$_POST["txtrazon"];
$marcas=$_POST["txtmarcas"];
$opcion=$_POST["opcion"];


if
  (isset(
$_POST['piso']) && !empty($_POST['piso']) &&
  isset(
$_POST['sector']) && !empty($_POST['sector']) &&
  isset(
$_POST['txtlocal']) && !empty($_POST['txtlocal']) &&
  isset(
$_POST['txtnombre']) && !empty($_POST['txtnombre']) &&
  isset(
$_POST['txttelefono']) && !empty($_POST['txttelefono']) &&
  isset(
$_POST['clasificacion']) && !empty($_POST['clasificacion']) &&
  isset(
$_POST['txtnit']) && !empty($_POST['txtnit']) &&
  isset(
$_POST['txtrazon']) && !empty($_POST['txtrazon']) &&
  isset(
$_POST['txtmarcas']) && !empty($_POST['txtmarcas'])
  ) {

    include (
"conexion.php");
    
    
$link mysql_connect("$servidor","$usuario","$clave");
    
mysql_select_db("$bd",$link);
    
    
mysql_query("INSERT INTO listado (piso, sector, numero_local, nombre, telefono, clasificacion, nit, razon_social, marcas) values ('$piso','$sector','$numero_local','$nombre','$telefono','$clasificacion','$nit','$razon_social','$marcas')",$link);
    
    
$my_error mysql_error($link);
    
      if(!empty(
$my_error)) {
      
      echo 
"Ocurrio un error al insertar el local . $my_error"
      } 
      else { echo 
"El local se ha insertado satisfactoriamente";
      }
  echo 
"Error, no ha introducido todos los datos";
  }

?>
Mil gracias por tu tiempo y tus ideas bro! Creo que lo más bonito de la programación es que hay miles de formas para hacer algo como esto... :P

Saludos desde Medellín, Colombia

Etiquetas: html, javascript, mysql, registro, tabla, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:49.