How to add a button type field to an array

0

I have the following function:

public function ajax()
{
    $consulta['consulta']=$this->Model_Entidades->traerentidades();
    echo $x=json_encode($consulta['consulta']);


}

which returns 4 fields and I insert them in a datatabl e. My question is how can I add one more column in the datatable that would be to edit?.

Thanks

    
asked by Jassan 27.09.2017 в 17:55
source

1 answer

0
// en lado del servidor        
public function ajax()
        {
            $consulta['consulta']=$this->Model_Entidades->traerentidades();

         /**
        si la estructura del array de la consulta es la siguiente 
        $consulta['consulta'] = [
          ['columna1' => 1, 'columna2' => 1, 'columna3'=> '3', 'columna4' => 4],
          ['columna1' => 1, 'columna2' => 1, 'columna3'=> '3', 'columna4' => 4],
          ['columna1' => 1, 'columna2' => 1, 'columna3'=> '3', 'columna4' => 4],
        ] 

        */

          // puedes añadir otra columna a cada element del array de consulta

    foreach($consulta['consulta'] as $key => $value) {

      $consulta['consulta'][$key]['boton'] = '<button>Botón</button>';

    }
      echo $x=json_encode($consulta['consulta']);
    }

if you want to add a column from javascript it would be similar to the server

var consulta = {
    consulta: [,
      {'columna1': 1, 'columna2' : 1, 'columna3': '3', 'columna4': 4},
      {'columna1': 1, 'columna2' : 1, 'columna3': '3', 'columna4': 4},
      {'columna1': 1, 'columna2' : 1, 'columna3': '3', 'columna4': 4}
    ]
};

var datatable = consulta['consulta']
.reduce(function(prev, next) {
  var nuevoValor = Object.assign({}, next, {boton: '<button>Boton</button>'});
  return prev.concat(nuevoValor);
}, []); 
    
answered by 27.09.2017 / 19:23
source