Javascript.RU

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

как принять данные из PHP в Javascript и вставить их в объекты класса
Здравствуйте, такая проблема, создал классы работников:
'use strict'

'use strict'
class Emp{
    constructor(name, surname, ptrnmc, zpt){
        this.name = name;
        this.surname = surname;
        this.ptrnmc = ptrnmc;
        this.zpt = zpt;
    }

    middleMonthSalary(){
        return (this.zpt)*12/12;
    }
}


class EmpWithHourlySalary extends Emp{
    constructor(name, surname, ptrnmc, zpt, zptInHour){
      super(name, surname, ptrnmc, zpt);
      this.zptInHour = zptInHour;
    }
    middleMonthSalary(){
        return (this.zptInHour)*8*2.8;
    }

}

class  EmpWithFixedSalary extends Emp{
    constructor(name, surname, ptrnmc, zpt){
        super(name, surname, ptrnmc, zpt);
    }
    middleMonthSalary(){
        return (this.zpt)*8*2.8;
    }
}


Затем создал функцию которая по идее должна обрабатывать пришедший запрос, ну и сам запрос:
var employeers = [];
function inObjs(data) {
    var employs = [];
    for(var i = 0;i<data.length;i++){
        employs[i] = JSON.parse(data[i]);
    }
    for(var j = 0;j<employs.length;j++){
        employeers[j] = employs[j];
    }
}

$.ajax({

    url: 'getListOfAllWorkers.php',
    type: 'get',
    success: function(data){
        inObjs(data);
    }

});


И PHP-код, который будет отправлять(по идее) данные:

<?php 
 require 'connection.php';
$sql="SELECT * FROM emps";
$result = mysqli_query($conn,$sql);


while($row = mysqli_fetch_array($result)) {
    echo json_encode($row['id']);
    echo json_encode($row['name']);
    echo json_encode($row['surname']);
    echo json_encode($row['patronymic']);
    echo json_encode($row['zpt']);
    echo json_encode($row['hourlyzpt']);


}

?>


Ну и собственно вопрос, если опустить мелкие огрехи в виде несоответствия количества полей(например нет id в конструкторе класса), насколько данный код рабочий? И будет ли он работать как задумывался, а то пока что проверить нет возможности. А задумывался он так: PHP отправляет данные, они достаются функции inObjs(), в ней они через цикл вставляются в массив объектов класса Emp, или его потомков(это еще предстоит реализовать). Главный вопрос пока что в том, правильно ли я реализовал передачу данных из PHP в javascript? Критика приветствуется.
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2016, 17:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от SeanPaul
насколько данный код рабочий?

На 100% не рабочий - второе же echo json_encode($row['name']); породит ошибку на клиенте ибо возвращается клиенту не JSON, а жуткая смесь. Да и какой прок в echo json_encode($row['name']);, так можно было бы просто каждое значение передавать, вопрос только в том как во всем этом разбираться серверу.

И проку от классов нет ибо, если даже пусть было бы корректно, фактически отдается простой индексный массив. А сервер должен возвращать массив объектов для клиента (ассициативный массив) и после его полного формирования из запроса.

while(($con[] = mysql_fetch_assoc($result)) || array_pop($con));
exit(json_encode($con))


PS. После внимательного взгляда "на клиента" ) - класс для порождения объекта, значит mysql_fetch_row вместо mysql_fetch_assoc и клиент получит массив массивов.

Последний раз редактировалось laimas, 25.06.2016 в 17:29.
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2016, 17:34
Новичок на форуме
Отправить личное сообщение для SeanPaul Посмотреть профиль Найти все сообщения от SeanPaul
 
Регистрация: 25.06.2016
Сообщений: 2

spasibo
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
Javascript в новой вкладке не такой как в старой ninja2 Общие вопросы Javascript 10 09.06.2015 14:01
Как передать данные в другую панель из выбранной строки таблицы. layout: 'card'. Пролетарий ExtJS 5 03.06.2015 22:53
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11