Foros del Web » Programando para Internet » Jquery »

Consulta Doble en ajax

Estas en el tema de Consulta Doble en ajax en el foro de Jquery en Foros del Web. Buen día quisiera ver si me pueden ayudar, en el siguiente codigo que les mostrare, tengo un error con los .ajax, se ejecutan 2 veces ...
  #1 (permalink)  
Antiguo 04/06/2013, 06:41
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Consulta Doble en ajax

Buen día quisiera ver si me pueden ayudar, en el siguiente codigo que les mostrare, tengo un error con los .ajax, se ejecutan 2 veces y nose la razon del porque, creando en algunos casos registros duplicados pero con diferente id. Espero me puedan ayudar.. saludos...


este es el .js

Código:
$(document).ready(function(){



		function error(){

			$(function() {
				$( "#dialog:ui-dialog" ).dialog( "destroy" );
		
				$( "#error" ).dialog({
					buttons:{
								OK: function() {
									$( this ).dialog( "close" );
								}
							},
					resizable: false,						
					height: 280,
					width: 600,
					modal: true
				});
				return false;
			});

		}



		function cliente(){

			$(function() {
				$( "#dialog:ui-dialog" ).dialog( "destroy" );
		
				$( "#cliente" ).dialog({
					buttons:{
								OK: function() {
									$( this ).dialog( "close" );
								}
							},
					resizable: false,						
					height: 280,
					width: 600,
					modal: true
				});
				return false;
			});

		}



		function formu(){

			$(function() {
				$( "#dialog:ui-dialog" ).dialog( "destroy" );
		
				$( "#formu" ).dialog({
					buttons:{
								OK: function() {
									$( this ).dialog( "close" );
								}
							},
					resizable: false,						
					height: 280,
					width: 600,
					modal: true
				});
				return false;
			});

		}



		function des(){

			$(function() {
				$( "#dialog:ui-dialog" ).dialog( "destroy" );
		
				$( "#des" ).dialog({
					buttons:{
								OK: function() {
									$( this ).dialog( "close" );
								}
							},
					resizable: false,						
					height: 280,
					width: 600,
					modal: true
				});
				return false;
			});

		}




		$("#crear").click(function(){
		
			if($("#tx2c").val() == false){
				error();
				return false;
			}


			else
			{
				var misId = {
								"nombre" : $("#tx2c").val()
						   };
				$.ajax({
					data: misId,
					url:  "admin/rtcliente.php",
					type: "post",
					success: function(datos){
												if(datos=="cliente"){cliente();}
												else
													{
														$("#tx5c").val(datos);
														$("#puno").hide('fold',600);
														$("#pdos").show('fold',600);
													}
									   		}
									   		
				});
			}	
		

		});
		//fin boton	


		$("#creard").click(function(){
		
		if($("#tx4c").val() == false){
			formu();
			return false;
			}
		if($("#tx5c").val() == false){
			formu();
			return false;
			}

		else
			{
				var datos= {
							  "descuento" : $("#tx4c").val(),
							  "idser" : $("#tx3c").val(),
							  "idtipo" : $("#tx5c").val()
						   };
				$.ajax({
					data: datos,
					url:  "admin/rtcliented.php",
					type: "post",
					success: function(texto){
												if(texto == "des"){des();}
									   		}
				});						   
			}

	});	






//Fin Jquery
});

este es el .php de uno de los ajax, los 2 se ejecutan 2 veces

Código:
<?php

	require('../session.php');
	if ($_SESSION['tipo'] != "Admin" ){
			session_destroy();
			header('Location: ../index.html');
			exit();
		}

		
	$nom=$_POST['nombre'];
	

			//If Principal
	if( isset($_POST['nombre']) )
		{

			$bu_serv="CALL bu_tipo_clientes('".$nom."')";
			include("../conexion.php");
			$consulta=mysql_query($bu_serv,$conexion) or die ("Error".mysql_error());
			$resultado=mysql_num_rows($consulta);
			mysql_close($conexion);
			//if resultado
			if ($resultado == 1)
				{	
					echo ("cliente");
				}
			//fin if resultado
			//else resultado
			else
				{
					
					include("../conexion.php");
					$pro="CALL in_tipos_clientes('".$nom."','".$_SESSION['ide']."')";
					mysql_query($pro,$conexion) or die ("Error: ".mysql_error());
					mysql_close($conexion);

					include("../conexion.php");
					$bu_tip="CALL bu_tipo_clientes('".$nom."')";
					$con=mysql_query($bu_tip,$conexion) or die ("Error".mysql_error());
					$arreglo=mysql_fetch_array($con);
					$idn= $arreglo['id_tipo'];
					mysql_close($conexion);

					echo($idn);

				}
			//fin else resultado
					
		}
		//fin If principal
		//Else Principal
	else
		{
			header('Location: ../admin.html');

		}
		//Fin else Principal
 
	
?>
  #2 (permalink)  
Antiguo 04/06/2013, 11:03
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Consulta Doble en ajax

Hola,

Probaste sacando las funciones
Código:
$("#crear").click(function()

$("#creard").click(function()

Del

Código:
$(document).ready(function(){
Dejalas abajo

Saludos
  #3 (permalink)  
Antiguo 04/06/2013, 12:15
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Consulta Doble en ajax

No funciona amigo puesto que debe estar dentro del codigo porque es jquery, y al sacarlo el boton no hace nada

Saludos
  #4 (permalink)  
Antiguo 04/06/2013, 14:05
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Consulta Doble en ajax

Es muy extraño, estando dentro del bloque script, tus funciones "click", deberian ejecutarse igualmente, no es requerido que esten dentro del ready, porque de otra manera no se podria ocupar "each", o "change" por ejemplo.

No te muestra algun error con el firebug de firefox?

Saludos
  #5 (permalink)  
Antiguo 04/06/2013, 14:28
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Consulta Doble en ajax

no amigo no me marca errores, y esk el .js es un archivo aparte que mando llamar desde mi pagina, cuando saco los botones del codigo que me dices estos no hacen nada.

Saludos
  #6 (permalink)  
Antiguo 04/06/2013, 18:45
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Consulta Doble en ajax

Podrias poner los datos de tu formulario porfavor, me parece muy extraño lo que me indicas.

Saludos
  #7 (permalink)  
Antiguo 05/06/2013, 06:08
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Consulta Doble en ajax

este es el formulario que manda llamar todo

Código:
<?php
require('../session.php');
if ($_SESSION['tipo'] != "Admin" ){
		session_destroy();
		header('Location:../index.html');
		exit();
	}
?>

<!DOCTYPE HTML>
<html lang="es">
<head>
	<meta charset="UTF-8" />
	<link rel="stylesheet" type="text/css" href="css/jquery.css" />
	<link rel="stylesheet" type="text/css" href="css/atcliente.css" />
	<script src="js/jquery.js"></script>
	<script src="js/atcliente.js"></script>
	<script src="js/jquery-ui.js"></script>
</head>
<body>

	<div id="puno">

			<img src="img/opc.jpg" id="img"/>
			<p id="tx1">Tipo de Cliente</p>
			<p id="tx2">Nombre: </p>
			<input type="text" id="tx2c" class="inp"/>
			<button type="button" id="crear"><img src="img/bot_5.png" id="bacd"></button>
	</div>

	<div id="pdos">

			<img src="img/opc.jpg" id="imgd"/>
			<p id="tx3">Servicio:</p>
			<p id="tx4">Descuento:</p>
			<p id="tx5">Registro de descuentos</p>
			<input type="text" id="tx4c" class="inp"/>
			<select id="tx3c">
                			  <?php
							  		include("../conexion.php");
									$conp="CALL co_servicios_todos()";
									$resultado= mysql_query($conp,$conexion);
									while($row=mysql_fetch_array($resultado)){
										echo ("<option value=".$row['id_servicio'].">".$row['nombre_servicio']."</ option>");
									}
									mysql_free_result($resultado);
									mysql_close($conexion);
							  ?>
            </select>
			<input type="text" id="tx5c" class="inp"/>
			<button type="button" id="creard"><img src="img/bot_5.png" id="bacd"></button>


	</div>


	<div id="error" title="Error">
			<img id="es" src="img/wn.png" /><p>Ingresa el nombre</p>
	</div>

	<div id="cliente" title="Error">
			<img id="es" src="img/wn.png" /><p>Tipo de cliente existente</p>
	</div>

	<div id="formu" title="Error">
			<img id="es" src="img/wn.png" /><p>Formulario incompleto</p>
	</div>

	<div id="des" title="Alta">
			<img id="es" src="img/wn.png" /><p>Descuento Asignado</p>
	</div>
</body>
</html>
como ven es una aplicacion a 3 niveles
  #8 (permalink)  
Antiguo 06/06/2013, 09:10
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Consulta Doble en ajax

Alguna sugerencia????
  #9 (permalink)  
Antiguo 06/06/2013, 10:00
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Consulta Doble en ajax

Hola, me meto de por medio ;P

Creo que tu error podría estar en la function creard, ya que haces 2 if y luego un else ahí suelto yo no sé hasta que punto eso sea válido prueba a construirlo de otra forma o a quitar uno de los if a ver si te funciona.

Saludos!

PD: Osea yo creo que en vez de un segundo if sería más bien else if ($("#tx5c").val() == false){...}
__________________
No hay preguntas tontas, sino tontos que no preguntan.

Etiquetas: ajax, doble
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 09:19.