2016-04-07 2 views
0

Я использую http://js-grid.com для моего приложения php. Я выбираю эту библиотеку для встроенного редактирования/обновления/добавления/удаления. Теперь я хочу просмотреть $variables или $array данных, которые будут поступать из базы данных. Вот сценарийКак добавить php-переменную (-ы)/массивы в функцию Javascript (в 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: db в javaScript Благодаря передовой.

+0

, пожалуйста, не добавляйте переменные php в javascript, помимо того, что уродливый - такая плохая практика, добавьте метод, который возвращает 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 :: Большое вам спасибо. ЭТО РАБОТАЕТ !!!!! –