Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2012, 10:10
Avatar de SirDuque
SirDuque
 
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 3 meses
Puntos: 89
Pregunta Error en Bucle FOR

Hola chicos, si bien el codigo tiene Jquery, el error me parece que es de javascript.
Tengo un simple bucle, dentro de este bucle tengo un par de condiciones, les copio el codigo y les sigo contando el problema:

Código Javascript:
Ver original
  1. function checkTa(enviarCO){
  2. var sumError ='';
  3. var n = 1;
  4.     for(n; n<=8; n++){
  5.     var asdf = "talonario_" + n;
  6.     if( $("#" + asdf).val() != ''){
  7.         $.post(
  8.         'ajax/talonario.php',
  9.         {talonario:$("#" + asdf).val()},
  10.         function(data){
  11.             if(data.error!='ok'){
  12.             if(data.proveedor==0 || data.proveedor==proveedor){
  13.                 if(!enviarCO){
  14.                 document.rango.submit();
  15.                 }
  16.             }else{
  17.               sumError ="El talonario de la fila: "+ n +" fue asignado al proveedor:"+data.proveedor+".\r\n";
  18.                nextfield = asdf;
  19.                 $('#error').text(sumError);
  20.                 $('#error').show('slow');
  21.                 setTimeout(function(){
  22.                 $(".error").hide('slow');
  23.                 },5000);
  24.                 $("#" + asdf).select();
  25.         //        alert(n);
  26.             }
  27.             }else{
  28.             sumError ="El talonario de la fila "+ n +" debe ser cargado previamente.\r\n";
  29.              nextfield = asdf;
  30.             $('#error').text(sumError);
  31.             $('#error').show('slow');
  32.             setTimeout(function(){
  33.                 $(".error").hide('slow');
  34.             },5000);
  35.             $("#" + asdf).select();
  36.             }
  37.         },
  38.         'json'
  39.         )
  40.     }
  41.     }  
  42. }

En la primera condicion si el campo "talonario_"+n esta basio es ignorado. Caso contrario por JSON y AJAX pido unos datos.

Con los datos recibidos en function(data)
realizo una segunda condicion: si data.error != "ok" realizo la tercer condicion para enviar el form o caso contrario emito un error en el cual indico la FILA ( variable n ).

Si nos detenmos AK, y suponemos que n=1 las condiciones son:

para la primera y segunda true y la tercera false

Me aparece el error:
Cita:
"El talonario de la fila: 9 fue asignado al proveedor: 474.\r\n"
cuando tendria que decir:
Cita:
"El talonario de la fila: 1 fue asignado al proveedor: 474.\r\n"
Tambien setea la variable nextfield="talonario_8"
cuando tendia que setear nextfield="talonario_1"


ya que talonario_[2-8] estan basio y no pasan la primer condicion.

Ademas no se de donde saca el 9 si el for condiciona n<=8.


Viendo la vista previa, es posible que el bucle continue sin esperar la respuesta JSON?
__________________
Mono programando!
twitter.com/eguimariano