Comunidad de diseño web y desarrollo en internet online

channel disconnected before an acknowledgement was received

Citar            
MensajeEscrito el 03 Dic 2010 02:56 am
Buenas señores, tengo un problema que me esta comiendo el coco, resulta que estoy haciendo una aplicacion en flex en la cual al un clientes se le pueden asociar varios productos, cuando lleno los datos del cliente mas abajo tengo un 2 grid uno con productos disponibles y otro con los productos que arrastro para que me los asocie al clientes, luego tengo el boton de guardar el cual primero me guarda los datos de cliente en la tabla cliente y posterior recorre el dataprovider del grid que tiene los productos que quiero asociar para grabarmelos uno por uno en la tabla clientes_productos, hasta hay todo muy bien, el codigo es el siguiente:

Código Flex :

      for(var i:int=0;i<dg_list_products_registers.dataProvider.length;i++){
         prod_id = dg_list_products_registers.dataProvider[i].prod_id;   
         createContacts_productsResult.token = contactsproductsService.createContacts_products(cont_id, prod_id);                  
      }   


esto lo hago en el evento result del s:CallResponder con el que grabo los datos del cliente, el problema es que solo me esta insertando 2 productos relacionados y luego en el tercero me sale el mensaje channel disconnected before an acknowledgement was received, que podria ser? el backend lo estoy haciendo en php y la funcion que me guarda es la siguiente:

Código PHP :

   public function createContacts_products($cont_id, $prod_id) {
      
      $stmt = mysqli_prepare ( $this->connection, "INSERT INTO $this->tablename (cont_id, prod_id) VALUES (?,?)" );
      $this->throwExceptionOnError ();
      
      mysqli_stmt_bind_param ( $stmt, 'ii', $cont_id, $prod_id );
      $this->throwExceptionOnError ();
      
      mysqli_stmt_execute ( $stmt );
      $this->throwExceptionOnError ();
      
      mysqli_stmt_free_result ( $stmt );
      mysqli_close ( $this->connection );
      
   }


Si me pueden ayudar se los agradeceria en el alma.

Por tumyeto

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Dic 2010 02:42 pm
Estás haciendo una llamada por producto, lo cual no es un esquema muy eficiente ... ¿que tal mandar un array de productos? (puedes crearte un VO y mapearlo en PHP), y luego el for con el insert lo haces en PHP

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Dic 2010 04:25 pm
De pronto no tendrás un ejemplo de como, la verdad lo he intentado pero no me ha dado.

Por tumyeto

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Dic 2010 05:19 pm
No tengo a mano, pero lo intentamos razonar. Por ejemplo:

Código ActionScript :

var ids:Array = new Array()
for(var i:int=0;i<dg_list_products_registers.dataProvider.length;i++){ 
         ids.push({cant:cont_id, prodid:dg_list_products_registers.dataProvider[i].prod_id]);                       
      }    
createContacts_productsResult.token = contactsproductsService.createContacts_products(ids);


En PHP recibes un array que tiene dentro arrays con keys, lo recorres y haces el insert, por ejemplo el id del primer producto en PHP lo accedes así:

$prod[0]['prodid']

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Dic 2010 06:23 pm
Muchas gracias solisarg, pero no logro hacerlo, si tienes un ejemplo te agradecería bastante.

Por tumyeto

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Dic 2010 06:50 pm
Tip: usa un sniffer para inspeccionar los objetos que pasa Flex al backend, http://charlesproxy.com puede ser tu herramienta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.