Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2015, 19:04
Новичок на форуме
Отправить личное сообщение для dennnnnnn Посмотреть профиль Найти все сообщения от dennnnnnn
 
Регистрация: 05.02.2015
Сообщений: 1

проблема с выводом c базы
Доброго времени суток. Пример кода который работает:
var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', function ($scope) {
  $scope.phones = [
    {'name': 'Nexus S',
     'snippet': 'Fast just got faster with Nexus S.',
     'age': 1},
    {'name': 'Motorola XOOM™ with Wi-Fi',
     'snippet': 'The Next, Next Generation tablet.',
     'age': 2},
    {'name': 'MOTOROLA XOOM™',
     'snippet': 'The Next, Next Generation tablet.',
     'age': 3}
  ];

  $scope.orderProp = 'age';
});

Пытаюсь сделать то же самое, только данные взять с базы данных, с помощью php, select.php:
<?php


        $dbhost = "localhost"; // Имя хоста БД
        $dbusername = "root"; // Пользователь БД
        $dbpass = ""; // Пароль к базе
        $dbname = "angular_baza"; // Имя базы

        $db = mysql_connect ($dbhost,$dbusername,$dbpass);
        mysql_select_db("angular_baza",$db);

        $result = mysql_query("SELECT * FROM angular_tabel",$db);
        echo json_encode($result);

controllers.js:
var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
    $http.get('select.php').success(function(data) {
        $scope.phones = {};
        $scope.phones = angular.fromJson(data);
    });
    $scope.orderProp = 'age';
});

Здесь в
$http.get('select.php').success(function(data) {
data: JSON_encode, warning...type is unsupported и т.д.
index.html:
<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title></title>
    <link href="css/bootstrap.css">
    <link href="css/style.css">
    <!--<script src="js/bootstrap.js"></script>-->
    <script src="js/angular.min.js"></script>
    <script src="js/controllers.js"></script>
</head>
<body ng-app="phonecatApp" >
<ul ng-controller="PhoneListCtrl">
    <li ng-repeat="phone in phones">
        {{phone.name}}
        {{phone.price}}
        {{phone.age}}
        {{phone.snippet}}
    </li>
</ul>
</body>
</html>

В чем проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2015, 19:46
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

Выдержка из офф документации
Response transformations ($httpProvider.defaults.transformResponse and $http.defaults.transformResponse):

If XSRF prefix is detected, strip it (see Security Considerations section below).
If JSON response is detected, deserialize it using a JSON parser.


ps. angular.fromJson() - не нужен
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2015, 08:57
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от dennnnnnn Посмотреть сообщение
var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
    $http.get('select.php').success(function(data) {
        $scope.phones = {};
        $scope.phones = angular.fromJson(data);
    });
    $scope.orderProp = 'age';
});
Это лучше вот так делай
var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
    $scope.phones = {};
    $scope.orderProp = 'age';
    $http.get('select.php').success(function(data) {
        $scope.phones = angular.fromJson(data);
    });
});

Т.о. объект будет существовать сразу, а потом просто обновится...
Да и вообще все "явные" объявления данных удобнее делать сразу, дабы не искать потом по всему контроллеру.

Последний раз редактировалось ksa, 06.02.2015 в 09:00.
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2015, 19:42
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

$result = mysql_query("SELECT * FROM angular_tabel",$db);
    echo json_encode($result);

Возможно что-то изменилось в новых версиях PHP, но вроде $relust это идентификатор, а не массив данных. Данные нужно из идентификатора результата читать fetch (вроде бы)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с выводом из цикла PHP sarkis28 Общие вопросы Javascript 3 05.03.2014 16:57
Проблема с выводом сообщений Visual Общие вопросы Javascript 0 01.02.2013 12:34
Проблема с выводом массива на консоль Vempel jQuery 1 06.08.2012 15:57
Проблема с выводом скрипта на страницу Mike_S. Общие вопросы Javascript 8 14.06.2011 07:26
Проблема с выводом контента в топ-панели Slavk0 Общие вопросы Javascript 0 28.03.2011 11:39