2017-02-22 7 views
0

Я пытаюсь заполнить выпадающее меню моими данными из базы данных. Но у меня есть пустые поля без каких-либо данных и без ошибок в консоли. Что я ошибаюсь?заполнить выпадающее меню с моими данными из базы данных всегда пусто

Я отправляю данные как json и получаю их в angularjs.

В моем PHP-файле есть файл DB. (Имя = usersDB.php)

<?php 
$con = mysqli_connect("localhost", "root", "password", "db"); 

if(!$con){ 
    die('something wrong '.mysqli_error()); 
} 

//echo ('test' . $_GET['action']); 
switch($_GET['action']) { 
    case 'get_Logins_info' : 
     get_Logins_info(); 
     break; 

} 

function get_Logins_info(){ 
    $qry = mysqli_query('SELECT * from login'); 

    echo("test"); 

    $data = array(); 
    while($rows = mysqli_fetch_array($qry)) 
    { 
     $data[] = array(
        "id" => $rows['id'], 
        "name"  => $rows['name'] 
        ); 
    } 

    print_r(json_encode($data)); 
    return json_encode($data); 
} 

?> 

Мой стол Войти выглядит следующим образом:

идентификатор имя имя пользователя пароль

Угловая часть

 $scope.getLogins = function() { 
      $http.get('forms/usersDB.php?action=get_Logins_info') 
       .then(function(data, status, headers, config) { 
        $scope.chooseLogins = data; 
        console.log('Retrieved data from server'); 
        console.log(data); 
       }) 
       .then(function(data, status, headers, config) { 
        console.log("Error in retrieving data from server"); 
        console.log(data, status); 
       }); 
     }; 

     $scope.getLogins(); 

HTML

   <md-select ng-model="login" > 
        <md-option ng-repeat="logins in chooseLogins" ng-value="logins.id">{{logins.name}}</md-option> 
       </md-select> 

У меня есть раскрывающийся список, но пуст.

Что такое консоль?

Retrieved data from server 
(index):118 Object {data: "test[]", status: 200, config: Object, statusText: "OK"}config: Objectdata: "test[]"headers: (name)status: 200statusText: "OK"__proto__: Object 
(index):122 Error in retrieving data from server 
(index):123 undefined undefined 

Все выглядит нормально, нет ошибок, но пусто.

+0

У вас есть данные в вашей таблице? Вывод подсказывает, что таблица 'login' пуста – madshvero

+0

попытаться отобразить результат php-файла inisde на небольшой странице html и сообщить мне, есть ли пустой массив или нет. – droidnation

+0

если вы закомментируете 'echo' и' print_r', это поможет? Интересно, выводит ли результат ответ. – BizzyBob

ответ

0

Проблема заключается в том, что вы не передавая соединение с базой данных на этой линии:

$qry = mysqli_query('SELECT * from login'); 

Изменить его:

$qry = mysqli_query($con, 'SELECT * from login'); 
+0

Изменен еще ничего. Текущий журнал протоколов Проверенные данные от сервера index.php: 115: 29 Объект {data: Array [0], status: 200, headers: headersGetter/<(), config: Object, statusText: "OK"} index.php : 116: 29 Ошибка при получении данных с сервера index.php: 119: 29 undefined undefined –

+0

Так что сделайте угловую форму уравнения в течение минуты. Убедитесь, что ваш оператор 'print_r' не закомментирован, и просто зайдите на страницу' usersDB.php? Action = get_Logins_info' – BizzyBob

+0

Посмотрите, что такое выход. – BizzyBob

0

Edit с исправлением.

Есть мой php.

switch($_GET['action']) { 
    case 'get_Logins_info' : 
     get_Logins_info($con,$row); 
     break; 

} 

function get_Logins_info($con){ 

    $qry = mysqli_query($con, "SELECT * from login"); 

    while($row = mysqli_fetch_array($qry, MYSQLI_ASSOC)) 
    { 
     $data[] = array( 
         "id" => $row['id'], 
         "name"  => $row['name'] 
        ); 
     //printf ("%s (%s)\n", $row["id"], $row["name"]); - This print proper data 
     // print_r($data); - This print table in way like [0] Array [1] Proper data [2] Array [3] Proper data 


    } 


    print_r(json_encode($data)); // this print Array[2] 
    return json_encode($data); 


} 

Но у меня все еще есть пустое поле выбора. Я думаю, что это проблема с моим HTML

угловыми

$scope.ChooseLogins = []; 

       $scope.getLogins = function() { 
        $http.get('forms/usersDB.php?action=get_Logins_info') 
         .then(function(data, status, headers, config) { 
          $scope.chooseLogins = data; 
          console.log('Retrieved data from server'); 
          console.log(data); 
         }) 
         .then(function(data, status, headers, config) { 
          console.log("Error in retrieving data from server"); 
          console.log(data, status); 
         }); 
       }; 

       $scope.getLogins(); 

Когда я сделал что-то вроде myaddress.com/forms/usersDB.php?action=get_Logins_info У меня есть строки из базы данных

HTML (У меня есть два варианта, но без данных)

<md-select ng-model="newTask.login" > 
          <md-option ng-repeat="logins in ChooseLogins" ng-value="logins.id">{{logins.name}}</md-option> 
         </md-select>