Могу ли я перебрать объект столбца с данными и добавить новую строку +2 - PullRequest
0 голосов
/ 02 февраля 2019

Я получаю данные из таблицы mysqli, используя jjery ajax, и заполняю их в Datatable как строку, используя объект столбца. Могу ли я перебрать те данные, которые я получаю в ответ от сервера, а затем добавить новую строку по номеру X, которыйЯ определяю.

Я пытался, но с этим кодом я получил те же строки, повторяемые в циклах X раз, но не добавлял никакого увеличения в другой строке.

Мой PHPAPI, который получает данные от MYSQL

if (isset($_POST['what_need']) AND $_POST['what_need'] == 'signup_getslabs') {

  $getTotalcountry = $obj -> getSlabSignup($_POST['placeid'], $_POST['range']);
  $return_ardr = array();

  foreach($getTotalcountry as $row) {
    $same_city_per_kg = $row['wc_slabr_hkg'];
    $diff_city_per_kg = $row['dc_slabr_hkg'];
    $fnfsamecityperkg = $same_city_per_kg - 50;
    $fnfdifferentcityperkg = $diff_city_per_kg - 50;
    $id = $row['id_slabr'];

    for ($i = 3; $i >= 0; $i--) {
      $samecit = $fnfsamecityperkg + 50;
      $diffcit = $fnfdifferentcityperkg + 50;
      $return_ardr[] = array(
        "samecity" => $samecit,
        "diffcity" => $diffcit,
        "weight" => 0.5,
        "idslab" => $id
      );
    }
  }

  function utf8ize($d) {
    if (is_array($d)) {
      foreach($d as $k => $v) {
        $d[$k] = utf8ize($v);
      }
    } else if (is_string($d)) {
      return utf8_encode($d);
    }
    return $d;
  }

  echo json_encode(utf8ize($return_ardr));
}

МОЙ КОД ДАННЫХ, КОТОРЫЙ ОТПРАВЛЯЕТ AJAX ЗАПРОС НА API И ПЕЧАТЬ ДАННЫХ В ТАБЛИЦЕ, ОПРЕДЕЛЯЕМЫХ ID

$('#ratestd').DataTable({
  "bDestroy": true,
  "serverSide": false,
  "ajax": {
    "url": "ajax-requests/ajaxm.php",
    "type": "POST",
    "dataSrc": function(d) {
      return d
    },
    "dataType": "json",

    "data": function(data) {
      data.what_need = 'signup_getslabs';
      data.placeid = placeid;
      data.range = range;
    }

  },
  dom: 'Bflrtip',
  "buttons": [
    'copyHtml5', 'excelHtml5', 'pdfHtml5', 'csvHtml5', 'colvis'
  ],
  "columns": [{
      "data": "weight"
    },
    {
      "data": "samecity"
    },
    {
      "data": "diffcity"
    }
  ]
});

Я ожидаю вывод, как это

WEIGHT     SAMECITY   DIFFERENT CITY
0.5 KG     50         100
1.0 KG     100        150
1.5 KG     150        200
2.0 KG     200        250

Ожидаемый вывод

Но что я получаю

WEIGHT     SAMECITY   DIFFERENT CITY
0.5 KG     50         100
0.5 KG     50         100
0.5 KG     50         100
0.5 KG     50         100

Что я получаю

1 Ответ

0 голосов
/ 02 февраля 2019

Проблема выглядит так, как будто она исходит из вашего цикла for.

for ($i = 3; $i >= 0; $i--) {
  $samecit = $fnfsamecityperkg + 50;
  $diffcit = $fnfdifferentcityperkg + 50;
  $return_ardr[] = array(
    "samecity" => $samecit,
    "diffcity" => $diffcit,
    "weight" => 0.5,
    "idslab" => $id
  );
}

Предполагая, что именно здесь вы создаете 4 значения, вам, вероятно, нужно попробовать что-то вроде:

$samecit = $fnfsamecityperkg;
$diffcit = $fnfdifferentcityperkg;
$weight = 0;

for ($i = 3; $i >= 0; $i--) {
    $samecit +=  50;
    $diffcit +=  50;
    $weight += 0.5;
    $return_ardr[] = array(
        "samecity" => $samecit,
        "diffcity" => $diffcit,
        "weight" => $weight,
        "idslab" => $id
    );
}

Возвращает:

array (size=4)
  0 => 
    array (size=4)
      'samecity' => int 50
      'diffcity' => int 100
      'weight' => float 0.5
      'idslab' => null
  1 => 
    array (size=4)
      'samecity' => int 100
      'diffcity' => int 150
      'weight' => float 1
      'idslab' => null
  2 => 
    array (size=4)
      'samecity' => int 150
      'diffcity' => int 200
      'weight' => float 1.5
      'idslab' => null
  3 => 
    array (size=4)
      'samecity' => int 200
      'diffcity' => int 250
      'weight' => float 2
      'idslab' => null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...