Un foro de discusión para nuestra comunidad de hispano hablante
By andrewtwo
#787854
Hola estoy trabajando con ajax y necesito guardar todo el control grid en un solo campo de tipo longvarchar la idea es guardar todo el arreglo en ese campo y luego recuperar esos datos y mostrarlos en el formulario desde el ajax cuando haga la petición no se que tanta dificultad tenga esta tarea de la manera como lo pienso trabajar existe algún ejemplo de este tema o seria mas recomendable guardar esos datos en una tabla independiente? pero eso implicaría hacer otra petición ajax para traer los datos de esa otra tabla. Que me recomendarías para este caso.

Gracias
Saludos
#787855
Aca esta codigo para guardar el grid en la base de datos con un trigger:
Code: Select all
$myGridJson = json_encode(@=myGrid);
//if using a MySQL database:
$myGridJson = mysql_real_escape_string($myGridJson);
//if using other types of databases:
//$myGridJson = addslashes($myGridJson);
$db = 'XXXXXXXXXXXXXXXXXXXXXXXX'; //ID of database connection if using an external DB.
$caseId = @@APPLICATION;
$sql = "INSERT INTO MYTABLE (CASE_ID, CODE, GRID_JSON) VALUES ('$caseId', 'XXXXXXXXXXXX', '$mGridJson')";
executeQuery($sql, $db);
En tu dynaForm, crea un textbox con la ID "searchText" y un hidden con la ID "sqlResult" y el sql:
Code: Select all
SELECT GRID_JSON FROM MYTABLE WHERE CODE LIKE "%@#searchText%"
Utiliza este codigo de JavaScript para llenar el grid con el ID "myGrid":
Code: Select all
function clearGrid(gridId) {
   var nRow = $("#"+gridId).getNumberRows();
   for (; nRow >= 1; nRow--) {
      //Can't delete the first row, so clear all its fields
      if (nRow == 1) {
         var aCols = $("#"+gridId).getInfo().columns;
         for (nField in aCols) {
            var val = '';
            if (aCols[nField].type == 'checkbox') {
               val = "0";
            }
            //workaround to clear date fields. See: https://processmaker.atlassian.net/browse/TRI-1280
            if (aCols[nField].type == 'datetime') {
               var gridFieldId = 'form[' + gridName + '][1][' + aCols[nField].id;
               $("[id='"+gridFieldId+"]']").val('');
               $("[id='"+gridFieldId+"_label]']").val('');
            }
            else if (aCols[nField].type != 'link') {
               $("#"+gridId).setValue(val, 1, parseInt(nField)+1);
            }      
         }
      }
      else {
         $("#"+gridId).deleteRow(nRow);
      }      
   }
}

$("#searchText").setOnchange( function(newVal, oldVal) {  
   clearGrid("myGrid");
   if (newVal == "") {
      return;
   }
   var myGridContents = getFieldById("sqlResult").executeQuery();
   oGrid = JSON.parse(myGridContents);
   for (rowIndex in oGrid) {
        var oRow = oGrid[rowIndex];
        var aNewRow = [];
        for (nField in oRow) {
             aNewRow.push( {value: oRow[nField]} );
        }
        $("#myGrid").addRow(aNewRow);
   }
} );

Hello. For rental housing, there are software solu[…]

Experience heightened pleasure with Cenforce 100 M[…]

Get an instant solution to move emails to MBOX for[…]

Most Demanding OST to PST Converter

The most demanding OST to PST Converter is TrijaT[…]