Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2013, 07:58
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: mostrar datos dinamicos en archivo .JS

Puedes crear un file.js.php me explico en un js puedes tener partes dinamicas generadas por php si el resultado es javascript valido van a ejecutarse como tal... debes poner extension .php para que el servidor se entere de que debe ejecutarlo como tal antes de pasarlo al cliente.

Ahora bien ese data.php que muestras tiene algun error

echo es echo no Echo.

Por otro lado la impresion del array en fomato json directamente sin asignar a una variable no lo va a interpretar el script js... excepto que leas el fichero de alguna manera y lo asignes a una variable....

Si modificas la ultima linea a

echo "var datosjson=".json_encode($arr).";";

eso generara en el fichero de salida una variable javascript con el contenido en formato json... apartir de aqui puedes pasarlo a un array javascript y usarlo en tu script.

Código Javascript:
Ver original
  1. <?php
  2. mssql_connect('(local)', 'sa', '.') or die("No fue posible conectar con el servidor");
  3. mssql_select_db('demo') or die("No fue posible selecionar la base de datos");
  4.  
  5.     $sql="select * from pruebas";
  6.  
  7.     $arr = array();
  8.     $rs = mssql_query($sql) or die;
  9.  
  10.     while($obj = mssql_fetch_object($rs)){
  11.         $arr[] = $obj;
  12.     }
  13.     echo "var datosjson=".json_encode($arr).";";
  14. ?>
  15.  
  16. /*!
  17.  * Grid de Prueba
  18.  */
  19. SampleGrid = function(limitColumns){
  20.  
  21.     function italic(value){
  22.         return '<i>' + value + '</i>';
  23.     }
  24.  
  25.     function change(val){
  26.         if(val > 0){
  27.             return '<span style="color:green;">' + val + '</span>';
  28.         }else if(val < 0){
  29.             return '<span style="color:red;">' + val + '</span>';
  30.         }
  31.         return val;
  32.     }
  33.  
  34.     function pctChange(val){
  35.         if(val > 0){
  36.             return '<span style="color:green;">' + val + '%</span>';
  37.         }else if(val < 0){
  38.             return '<span style="color:red;">' + val + '%</span>';
  39.         }
  40.         return val;
  41.     }
  42.    
  43.     var columns = [
  44.         {
  45.             id:'company',
  46.             header: "Company",
  47.             width: 160,
  48.             sortable: true,
  49.             dataIndex: 'company'
  50.         },{
  51.             header: "Price",
  52.             width: 75,
  53.             sortable: true,
  54.             renderer: Ext.util.Format.usMoney,
  55.             dataIndex: 'price'
  56.         },{
  57.             header: "Change",
  58.             width: 75,
  59.             sortable: true,
  60.             renderer: change,
  61.             dataIndex: 'change'
  62.         },{
  63.             header: "% Change",
  64.             width: 75,
  65.             sortable: true,
  66.             renderer: pctChange,
  67.             dataIndex: 'pctChange'
  68.         },{
  69.             header: "Last Updated",
  70.             width: 85,
  71.             sortable: true,
  72.             renderer: Ext.util.Format.dateRenderer('m/d/Y'),
  73.             dataIndex: 'lastChange'
  74.         }];
  75.  
  76.     // allow samples to limit columns
  77.     if(limitColumns){
  78.         var cs = [];
  79.         for(var i = 0, len = limitColumns.length; i < len; i++){
  80.             cs.push(columns[limitColumns[i]]);
  81.         }
  82.         columns = cs;
  83.     }
  84.  
  85.     SampleGrid.superclass.constructor.call(this, {
  86.         store: new Ext.data.Store({
  87.             reader: new Ext.data.ArrayReader({}, [
  88.                    {name: 'company'},
  89.                    {name: 'price', type: 'float'},
  90.                    {name: 'change', type: 'float'},
  91.                    {name: 'pctChange', type: 'float'},
  92.                    {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
  93.               ]),
  94.             data: [
  95.                 ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
  96.                 ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
  97.                 ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
  98.                 ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
  99.                 ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am']
  100.             ]
  101.  
  102.         }),
  103.         columns: columns,
  104.         autoExpandColumn: 'company',
  105.         autoScroll : true,
  106.         //forceFit: true,
  107.         height:250,
  108.         width:600
  109.     });
  110. }
  111.  
  112. Ext.extend(SampleGrid, Ext.grid.GridPanel);

Solo deberias acceder a la variable datosjson la qual contendra un string en formato json valido ... http://stackoverflow.com/questions/4...-in-javascript aqui tienes ejemplos de como trabajar con ella.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.