2016-04-07 77 views
0

我爲我的php應用程序使用http://js-grid.com。我選擇這個庫進行內聯編輯/更新/添加/刪除。現在我想查看來自數據庫的$variables$array數據。下面是在上面的代碼腳本如何在Javascript函數中添加php變量/數組(在jsGrid({controller})中)

<script> 
    $(function() { 
     $("#jsGrid").jsGrid({ 
      pageButtonCount: 5, 
      deleteConfirm: "Do you really want to delete the client?", 
      controller: db, 
      fields: [ 
       { name: "Name", type: "text", width: 150 }, 
       { name: "Age", type: "number", width: 50 }, 
       { type: "control" } 
      ] 
     }); 

    }); 
</script> 

我有一個名爲controller屬性,它被渲染db (data)db來自文件db.js。該文件如下所示:

(function() { 
var db = { 
    loadData: function(filter) { 
     return $.grep(this.clients, function(client) { 
      return (!filter.Name || client.Name.indexOf(filter.Name) > -1) 
       && (!filter.Age || client.Age === filter.Age) 
       && (!filter.Address || client.Address.indexOf(filter.Address) > -1) 
       && (!filter.Country || client.Country === filter.Country) 
       && (filter.Married === undefined || client.Married === filter.Married); 
     }); 
    }, 
    insertItem: function(insertingClient) { 
     this.clients.push(insertingClient); 
    }, 
    updateItem: function(updatingClient) { }, 
    deleteItem: function(deletingClient) { 
     var clientIndex = $.inArray(deletingClient, this.clients); 
     this.clients.splice(clientIndex, 1); 
    } 
}; 

window.db = db; 

db.countries = [ 
    { Name: "", Id: 0 }, 
    { Name: "United States", Id: 1 }, 
]; 

db.clients = [ 
    { 
     "Name": "Otto Clay", 
     "Age": 61, 
    }, 
    { 
     "Name": "Connor Johnston", 
     "Age": 73, 
    } 
]; 

}()); 

另外我跟着github文檔https://github.com/tabalinas/jsgrid-php。但我不知道如何將我的php $variable or $array放入我的視圖以及javaScripts

我想什麼: 我要打電話到$array的使用javaScripts爲controller : db部分。

錯誤: 當我使用controller: <?php echo $array; ?>', its returning null cause I can not call as they called as default from db.js`

請幫我,我怎麼可以叫php $variable or $array而不是controller: dbjavaScript 在先進的感謝。

+0

請不要在javascript中添加php變量,除了醜是這樣不好的做法,添加一個返回json到瀏覽器的方法 – jycr753

+0

@ jycr753 ::我沒有得到你。你願意引導我多一點嗎?順便說一下,我在Laravel 5.1中工作::我有一個控制器的方法來準備數組或變量,然後我發送到視圖 –

+0

您正在做laravel,這很容易,只需創建一個新的路由器,將調用控制器將生成您需要的數據,在控制器調用方法中返回模型中的數據,我猜是用戶模型?真的很容易做 – jycr753

回答

0

controller選項定義的行爲,你不能把靜態數據。 但有一個選項data你可以把靜態值(如你的例子從PHP)。

你的另一個選擇是定義controller.loadData

controller: { 
    loadData: function() { 
     return $.ajax({ 
      type: "GET", 
      url: "/clients/" 
     }); 
    }, 

,並在服務器上您提供所請求的信息

switch($_SERVER["REQUEST_METHOD"]) { 
    case "GET": 
     $result = $clients->getAll(); 
     break; 
    ... 
} 

header("Content-Type: application/json"); 
echo json_encode($result); 

您可以找到jsgrid-php repo實施。

+0

::謝謝。讓我把它們全部放入我的系統中。 –

+0

@tablin:非常感謝。這是工作 !!!!! –

相關問題