В codeIgniter, как извлечь массив сериализации из поста AJAX? - PullRequest
0 голосов
/ 08 июня 2018

В CodeIgniter как json декодировать сериализованный массив из поста ajax?

Я хочу сохранить эти данные на основе property_id и item_definition_id.Здесь property_id одинаково для этих двух сервисов.item_definition_id и service_name разные.

В этом проекте у меня есть 4 типа услуг.техническое обслуживание, add_on, посадка и уборка.Ниже этого типа услуг есть 5-10 наименований услуг.

Я хочу сохранить эти данные, когда user(property_id) выберите службы и нажмите кнопку сохранения (кнопка сохранения находится вне формы)

С консоли я получил сериализованный массив, подобный этому,

0:{name: "service_type", value: "main"}
1:{name: "service_name", value: "Maintenance"}
2:{name: "unit", value: "Per Visit"}
3:{name: "item_definition_id", value: "26"}
4:{name: "visits", value: "14"}
5:{name: "extra_charge", value: ""}
6:{name: "override_charge", value: "3600"}
7:{name: "maintenance.level1.type1", value: ""}
8:{name: "maintenance.level1.type2", value: "1"}
9:{name: "maintenance.level1.type3", value: "1"}
10:{name: "maintenance.level1.type4", value: ""}
11:{name: "maintenance.level1.type5", value: "6"}
12:{name: "maintenance.level2.type1", value: "4"}
13:{name: "maintenance.level2.type2", value: ""}
14:{name: "maintenance.level2.type3", value: ""}
15:{name: "maintenance.level2.type4", value: "4"}
16:{name: "maintenance.level2.type5", value: "1"}
17:{name: "maintenance.level3.type1", value: ""}
19:{name: "maintenance.level3.type2", value: ""}
20:{name: "maintenance.level3.type3", value: "1"}
21:{name: "maintenance.level3.type4", value: "1"}
22:{name: "maintenance.level3.type5", value: "4"}
23:{name: "maintenance.level4.type1", value: ""}
24:{name: "maintenance.level4.type2", value: ""}
25:{name: "maintenance.level4.type3", value: ""}
26:{name: "maintenance.level4.type4", value: ""}
27:{name: "maintenance.level4.type5", value: ""}
28:{name: "maintenance.level5.type1", value: ""}
29:{name: "maintenance.level5.type2", value: ""}
30:{name: "maintenance.level5.type3", value: ""}
31:{name: "maintenance.level5.type4", value: ""}
32:{name: "maintenance.level5.type5", value: ""}
33:{name: "contract_notes", value: "4 Hour monthly visit"}
34:{name: "internal_notes", value: ""}
35:{name: "service_type", value: "add_on"}

36:{name: "service_type", value: "add_on"}
37:{name: "service_name", value: "Gutter Cleaning"}
38:{name: "unit", value: "Per Visit"}
39:{name: "item_definition_id", value: "19"}
40:{name: "visits", value: "1"}
41:{name: "gutter_cleaning_linear_feet", value: ""}
42:{name: "gutter_cleaning_greater_than_15_feet", value: ""}
43:{name: "gutter_cleaning_cannot_walk_roof", value: ""}
44:{name: "extra_charge", value: ""}
45:{name: "override_charge", value: "348"}
46:{name: "contract_notes", value: ""}
47:{name: "internal_notes", value: ""}
48:{name: "property_id", value: "173"}
49:{name: "contractDate", value: "05/02/2019"}
50:{name: "contract_id", value: "1473"}
51:{name: "duration_months", value: "12"}

в функции контроллера

public function save_contracts(){    

    $data = json_decode($_POST['data'], true);
    $newArr = [];
    foreach ($data as $arr) {
        foreach ($arr as $k => $v) {
            if($k == 'name') $name = $v;
            if($k == 'value') $value = $v;
        }
        $newArr[ $name ] = $value;
    }
    $UpdateItems =  $this->current_model->UpdateContracts($newArr);
    //echo $UpdateItems;

} 

Здесь я получил последнее имя_сервиса.

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать $postData = $this->input->post(); для публикации

и $getData = $this->input->get();

и доступа к каждому файлу $post['service_type]

https://www.codeigniter.com/user_guide/libraries/input.html?highlight=post#CI_Input::get_post

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...