взорвать / взорвать массив в PHP - PullRequest
0 голосов
/ 04 марта 2019

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

Я создаю массив, используя флажки в JavaScript.Я могу успешно $ .post массив в PHP, но я продолжаю получать следующую ошибку:

Предупреждение : explode () ожидает, что параметр 2 будет строкой, а массив задан в D: \ htdocs \ deliverynoticeV2 \ process \ updateRecord.php в строке 14

Предупреждение : implode (): неверные аргументы, переданные в D: \ htdocs \ deliverynoticeV2 \ process \ updateRecord.php в строке 15

Повторяется одна и та же ошибка примерно 4 раза, так как у меня есть 4 разных массива IОтправляю.

Начиная с JavaScript:

$('#updateRecords').on('click', function(e)
{ 
  e.preventDefault();
  $('#updateForm input').val('');

  var checkcontainer = [];
  var checkorder = [];
  var checktrucker = [];
  var checkconsignee = [];

  $(".checkEdit:checked").each(function(){
    checkcontainer.push($(this).data("checkcontainer"));
    checkorder.push($(this).data("checkorder"));
    checktrucker.push($(this).data("checktrucker")); 
    checkconsignee.push($(this).data("checkconsignee")); 
  });

  console.log(checkcontainer);

  $.post('process/updateRecord.php', {checkcontainer:checkcontainer,
  checkorder:checkorder, checktrucker:checktrucker, checkconsignee:checkconsignee}, 
  function(data)
  {
    console.log(data);
  }); 
});

Когда я выводю консоль переменной 'checkcontainer', я вижу следующее:

["FSCU7122545", "TGHU6235458", "TCNU6900047"]

Overв PHP код выглядит так:

<?php
if(isset($_POST['checkcontainer']))
{
  $checkcontainer = $_POST['checkcontainer'];
  $checkorder = $_POST['checkorder'];
  $checktrucker = $_POST['checktrucker'];
  $checkconsignee = $_POST['checkconsignee'];

  $containerSplit = explode(",", $checkcontainer);
  $containers = "'" . implode("', '", $containerSplit) . "'";
  $orderSplit = explode(",", $checkorder);
  $orders = "'" . implode("', '", $orderSplit) . "'";
  $truckerSplit = explode(",", $checktrucker);
  $truckers = "'" . implode("', '", $truckerSplit) . "'";      
  $consigneeSplit = explode(",", $checkconsignee);
  $consignees = "'" . implode("', '", $consigneeSplit) . "'";

  echo $containers;
}
?>

Как уже говорилось, я использовал этот же код в предыдущем проекте.Почему я получаю вышеуказанную ошибку?

1 Ответ

0 голосов
/ 04 марта 2019

Вам на самом деле не нужны explode() вызовы перед вашими implode(), потому что отправляемые вами данные являются массивами (ваши переменные в ваших js являются массивами).Таким образом, все ваши $_POST переменные являются массивами.

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