как принять данные из 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? Критика приветствуется. |
Цитата:
На 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 и клиент получит массив массивов. |
spasibo
|
Часовой пояс GMT +3, время: 20:18. |