Foros del Web » Programando para Internet » Javascript »

enviar variable a bd usando ajax (funciona cuando quiere)

Estas en el tema de enviar variable a bd usando ajax (funciona cuando quiere) en el foro de Javascript en Foros del Web. hola solucionadores masivos! soy un malo con javascript y necesito enviar 2 variables a una base de datos siempre y cuando se cumpla una condición, ...
  #1 (permalink)  
Antiguo 15/03/2013, 01:22
 
Fecha de Ingreso: febrero-2013
Mensajes: 12
Antigüedad: 11 años, 2 meses
Puntos: 0
enviar variable a bd usando ajax (funciona cuando quiere)

hola solucionadores masivos! soy un malo con javascript y necesito enviar 2 variables a una base de datos siempre y cuando se cumpla una condición, a la vez quiero que se vea bien y no se recargue asi que me decidí liarme un poco más y usar ajax...

bajé y modifiqué un script que hace el envio a el archivo php, donde yo le doy las instrucciones sobre los datos que tiene que actualizar y WHERE sea necesario...

el tema está en que el script solo funciona si clickeo repetidas veces (4 o 5 veces) en el botón que hace el envío, y obviamente me gustaría que lo haga a la primera...

las variables que necesito enviar son $cuenta y $cajero; al archivo process.php


formulario html
Código HTML:
 <form name="contact" method="post" action="">
      <input type="hidden" name="cajero" id="cajero" value='<?php echo "$cajero";?>'/>      
      <input type="hidden" name="cuenta" id="cuenta" value='Pagado'/>
	  <input type="submit" name="submit" class="button" id="submit_btn" value="COBRAR" />
  </form> 
este formulario en el head carga 2 archivos js que son los siguientes:

runonload.js
Código:
function runOnLoad(f) {
    if (runOnLoad.loaded) f();
    else runOnLoad.funcs.push(f);
}

runOnLoad.funcs = [];
runOnLoad.loaded = false;

runOnLoad.run = function() {
    if (runOnLoad.loaded) return;

    for(var i = 0; i < runOnLoad.funcs.length; i++) {
        try { runOnLoad.funcs[i](); }
        catch(e) {
    }
    
    runOnLoad.loaded = true;
    delete runOnLoad.funcs;
    delete runOnLoad.run;
};

if (window.addEventListener)
    window.addEventListener("load", runOnLoad.run, false);
else if (window.attachEvent) window.attachEvent("onload", runOnLoad.run);
else window.onload = runOnLoad.run;
y tutorial.js
Código:
$(function() {
  $('.error').hide();
  $('input.text-input').css({backgroundColor:"#FFFFFF"});
  $('input.text-input').focus(function(){
    $(this).css({backgroundColor:"#FFDDAA"});
  });
  $('input.text-input').blur(function(){
    $(this).css({backgroundColor:"#FFFFFF"});
  });

  $(".button").click(function() {
  $('.error').hide();
		
	  var cajero = $("input#cajero").val();

		var cuenta = $("input#cuenta").val();
		
		
		
		var dataString = 'cajero='+ cajero + '&cuenta=' + cuenta;
		
		$.ajax({
      type: "POST",
      url: "bin/process.php",
      data: dataString,
      success: function() {
        $('#contact_form').html("<div id='message'></div>");
        $('#message').html("<h2>Datos enviados!</h2>")
        .append("<p>...</p>")
        .hide()
        .fadeIn(10, function() {
          $('#message');
        });
      }
     });
    return false;
	});
});
runOnLoad(function(){
  $("input#cajero").select().focus();
});
no me parece necesario pegar el codigo php que inserta los datos en la db ya que imagino que el problema está en uno de estos 2 archivos js... al ser un código modificado, hay lineas que estan de más que hacen que se generen esos conflictos al intentar enviar en el primer intento, lo hace cuando se clickea seguidamente sobre el botón, ustedes al conocer el lenguaje seguramente sabran darme la solución facilmente, espero una fácil explicación porque no conozco de JS :D gracias...
  #2 (permalink)  
Antiguo 15/03/2013, 02:31
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: enviar variable a bd usando ajax (funciona cuando quiere)

Hola:

Lo más posible es que el click(), si funciona una vez, funcione siempre. ¿Por qué dices que no funciona? ¿Da un error en javascript que has visto en tu consola de javascript? ¿No se llama siquiera a la página bin/process.php? ¿Se le llama pero no llegan datos en $POST[]? ¿No ves cambios en la base de datos?. ¿No aparece el resultado esperado en el html después de hacer el click?. Es mucho presuponer que el fallo está en javascript si no confirmas que o no se llama a bin/process.php o se le llama pero no le llegan $POST[], o si no confirmas que process.php devuelve exactamente lo que tiene que devolver y el problema es que no ves el resultado en tu html.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 15/03/2013, 10:03
 
Fecha de Ingreso: febrero-2013
Mensajes: 12
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: enviar variable a bd usando ajax (funciona cuando quiere)

hola chuidiang, gracias por responder, te cuento... no se a que te refieres con consola de javascript, estoy trabajando con netbeans y no veo ninguna consola, al parecer no se si no está llamando a bin/process.php o no le llegan bien los datpos por $POST el tema está en que no se reflejan los camibos en la base de datos hasta que no se presiona muchas veces el botón :( y hay pocos registros en la db como para suponer que se demora en realizar el UPDATE que pide el process, incluso con un solo registro ocurre lo mismo, como te comentaba es un script modificado de otro que encontré en la web, dicho script tenía ciertas validaciones para recibir los datos, dichas validacones yo las borré para que el botón funcione sin importar los datos que traigan las variables, al no entender javascript quizás quedaron vestigios de validaciones y eso es lo que me está haciendo renegar, suposiciones mias, no se, solo para que analices el código y veas que puede llegar a estar de más como para poder sacarlo, gracias por tu tiempo...
  #4 (permalink)  
Antiguo 11/07/2013, 08:17
 
Fecha de Ingreso: abril-2013
Ubicación: venezuela
Mensajes: 92
Antigüedad: 11 años
Puntos: 1
Respuesta: enviar variable a bd usando ajax (funciona cuando quiere)

Buenos dias, se que el tema es del mes 3 y me disculpo por revivir esto pero actualmente tengo un problema parecido al tuyo... envio datos con ajax y en mi caso no tengo que darle varios click pero si falla aveces pues no envia los datos.

si llegaste a conseguir alguna solucion a tu problema?
__________________
"Para el logro del triunfo es necesario pasar por las sendas de los sacrificios"

Etiquetas: ajax, bd, formulario, funcion, html, input, js, php, select, variable
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 18:08.