Foro

grabar registros desde store

0
hola amios, a alguno de uds nose si les ha sucedido lo siguiente:
cuando grabo varios registros desde el store no me graban todos los registros.
si tengo 10 registros en el store puede grabarme 8 o 9 registros o como también de tanto probar me puede grabar los 10 registros. Pero si yo coloco un alert ahí si me graba los 10 registros.Pongo mi código para que alguno de uds me de una mano.

Ext.Msg.wait('Guardando','Usuario');	
grid7.store.each(function(r){
   Ext.Ajax.request({
   url: '<?= base_url() ?>index.php/metcc/save',  
  method: 'POST',
  params: { num : cntNum, idCentro : r.data.idCentro, cod: r.data.cod, des: r.data.descrip,   id_med : r.data.unidad_medida, cantidad : parseFloat(r.data.ctotal), precio :   parseFloat(r.data.pu), total : parseFloat(r.data.vtotal) },
  success: function (action,options){
    //alert('grabando');
  } });
},this);


muchas gracias
0
Hola Lushine.

Lo que sucede es que estas haciendo muchas peticiones al servidor, los navegadores limitan a un determinado numero de requests simultaneos.

Lo que te recomiendo hacer es enviar todos los registros en un arreglo JSON en una sola petición, luego en el servidor los procesas y guardas uno por uno. Así como te digo tambien evitaras sobre-cargar tu servidor.

Saludos
0
OK, gracias Crysfel, enormemente GRACIAS!!!!!!!! no se como hacerlo pero me parece que por ahi esta el problema.



saludos cordiales

0
hola Crysfell, hice lo que me indicaste, sabes  sigue sin grabar con exactitud, pero debo decirte que ya mejoro considerablemente, antes de 5 pruebas 4 salian mal, ahora de 5 pruebas 4 estan bien y una siempre falla. mi codigo es asi.

var datar = new Array();
var jsonDataEncode = "";
var records = store7.getRange();
for (var i = 0; i < records.length; i++)
 { datar.push(records[i].data); }
jsonDataEncode = Ext.util.JSON.encode(datar);
if(cntMov > 0){ Ext.Msg.wait('Guardando','Usuario');
cntNum = cntNum - 1 ; 
Ext.Ajax.request({
url: '<?= base_url() ?>index.php/metacc/saveImport',
method: 'POST',
params: { num : cntNum, estado : '0', tipoing:'S', idTar : index3,
idMet : index1,
estado:'0',
dat: jsonDataEncode },
success: function (action,options){
cntMovVal = cntMovVal + 1; } });
}

dentro del PHP

$num  = $_POST['num'];
$estado=$_POST['estado'];
$tipoing=$_POST['tipoing'];
$idMeta = $_POST['idMet'];
$idTar  = $_POST['idTar'];
$json = new Services_JSON;
$codespTMP = $json->decode($_POST['dat']);
$codEsp = array();
foreach ($codespTMP as $row)
{
$nom  =  $row->nom ;
$idCentro  = $row->idCentro ;
.....
.....

dime en que otra cosa puedo mejorarlo

GRACIAS!!!!!
Crysfel Villa: Te sale algún error en el servidor? que es lo que te falla exactamente? 01/10/2013

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.