Alert si el registro existe en la base de datos al tabular.
#41
Posted 24 October 2012 - 08:56 AM
En la funcion que me pones no faltan llaves {}????
[js]
if (existe.indexOf("Encontrado", 0) > 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
[/js]
Un saludo
#42
Posted 24 October 2012 - 09:04 AM
En la funcion que me pones no faltan llaves {}????
[js]
if (existe.indexOf("Encontrado", 0) == 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
[/js]
Un saludo
Buen día amiogo, no, no faltan llaves y me eplicaré. En la mayoría de los lenguajes de programación se caracterés de inicio y cierre de bloque solo ´cuando las de código dentro del bloque son más de una. Esto es, para el caso de que el If dispare la ejecución de más de una línea de código tendrás que colocar los caracteres de inicio y cierre, pero cuando solo es una línea de código no es necesario. El sistema entiende que se ejecutará solo esa línea:
esto si requuere
[java]
If (algo) {
una linea;
dos líneas
tres líneas;
}
[/java]
esto no lo requiere
[java]
If (algo)
soloejecutaunalinea;
[/java]
#43
Posted 24 October 2012 - 09:12 AM
function GuardaFormulario() {
//usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
var _telefono = document.forms['form1'].elements['telefono'];
if (_telefono.value.length == 0){
alert("Insertar el Teléfono");
_telefono.focus();
return 0;
}
////Hasta aquí bien pero luego ya no hace nada?///////
else {
var existe = TelefonoExiste(telefono);
if (existe.indexOf("Encontrado", 0) > 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
return 0;
}
}
#44
Posted 24 October 2012 - 09:18 AM
Ok, y entonces porque no me sigue despues de aquí:
function GuardaFormulario() {
//usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
var _telefono = document.forms['form1'].elements['telefono'];
if (_telefono.value.length == 0){
alert("Insertar el Teléfono");
_telefono.focus();
return 0;
}
////Hasta aquí bien pero luego ya no hace nada?///////
else {
var existe = TelefonoExiste(telefono);
if (existe.indexOf("Encontrado", 0) > 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
return 0;
}
}
jajajaja me acabas de cambiar el código ese guarda formulario es diferente al que me enviaste.
un consejo, separa todo y ve entendiendo que hace tu script paso por paso... solo así encontrarás por qué falla. El código posteaste y probé en mi servidor funciona sin problema
#45
Posted 24 October 2012 - 09:35 AM
Pero ya te digo que primero mira si hay telefono ingresado y despues no pasa.
////De aquí no pasa///////
else {
var existe = TelefonoExiste(telefono);
if (existe.indexOf("Encontrado", 0) > 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
return 0;
}
}
#46
Posted 24 October 2012 - 09:44 AM
#47
Posted 24 October 2012 - 10:25 AM
Si alguien mas puede probarlo.
[js]
function nuevoAjax() {
var xmlhttp=false;
try {
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) {
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
xmlhttp=new XMLHttpRequest();
}
}
return xmlhttp;
}
function TelefonoExiste(telefono) {
var existe= "";
var ajax=nuevoAjax();
ajax.open("GET", "valida1.php?telefono="+telefono, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4)
existe=ajax.responseText;
}
ajax.send(null);
return existe;
}
function GuardaFormulario() {
//usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
var _telefono = document.forms['form1'].elements['telefono'];
if (_telefono.value.length == 0){
alert("Insertar el Teléfono");
_telefono.focus();
return 0;
}
else {
var existe = TelefonoExiste(telefono);
if (existe.indexOf("Encontrado", 0) > 0)
alert(telefono + " ya se encuentra registrado");
else
alert(telefono + " no ha sido registrado");
}
return false;
}
[/js]
Gracias.
#48
Posted 24 October 2012 - 11:15 AM
El problema de que se paraba la funcion era porque tenia guiones bajos puestos en la variable telefono tal que así _telefono.
Entonces ya sigue y me da este alert [object HTMLInputElement] no ha sido registrado y estoy metiendo un telefono que existe en la base de datos.
Una pregunta el valor de Encontrado if (existe.indexOf("Encontrado", 0) > 0) tiene que ser igual al del cod valida1.php para que si el telefono existe en la base de datos salte la funcion alert(telefono + " ya se encuentra registrado");?
[js]if(mysql_num_rows($result))
echo"Encontrado"; [/js]
#49
Posted 24 October 2012 - 03:22 PM
Muchas gracias, Poliburro por tu ayuda los codigos quedarían así:
valida1.php
<?php
require_once('Connections/conexion.php');
$telefono = isset($_GET['telefono']) ? $_GET['telefono']:"";
$query=("SELECT telefono FROM usuarios WHERE telefono ='".$telefono."'");
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if ($rows) {
echo '1';
}
?>
js
[js]
function nuevoAjax() {
var xmlhttp=false;
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(E) {
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
xmlhttp=new XMLHttpRequest();
}
}
return xmlhttp;
}
function TelefonoExiste(telefono, _callback) {
var ajax=nuevoAjax();
ajax.open("GET", "valida1.php?telefono=" + encodeURIComponent(telefono), true);
ajax.onreadystatechange=function() {
if ((ajax.readyState==4) && (ajax.status==200)){
//ejecutamos _callback como si fuese una función, pasandole el parámetro
_callback(ajax.responseText);
}
}
ajax.send(null);
}
function GuardaFormulario() {
//usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
var _telefono = document.forms['form1'].elements['telefono'];
if (_telefono.value.length == 0){
alert("Insertar el Teléfono");
_telefono.focus();
return 0;
}
//lamamos a AJAX:
TelefonoExiste(_telefono.value, function(resp) {
//evaluamos la respuesta del server, tengase en cuenta que responseText devuelve un string, por lo tanto hay que parsear a entero si se evalúa un numero:
if (parseInt(resp) == 1) {
//aqui seria bueno un mensaje
alert('el teléfono ya existe');
_telefono.focus();
} else {
//evaluar si se envía el form desde aquí, o se usa ajax para enviarlo.
alert("El formulario se envio con exito!");
document.forms['form1'].submit();
}
});
//como ajax es asincrono, JS NO se detendrá en la llamada anterior, por lo tando hay que retornar false o 0 como lo tienes:
return 0;
}
[/js]
Saludos.
#50
Posted 24 October 2012 - 06:40 PM
SOLUCIONADO
Muchas gracias, Poliburro por tu ayuda los codigos quedarían así:
me alegra saber que por fín lograste hacerlo funcionar... saludos