Прикрепленное изображение, простые данные и массив данных для php показывает [объект, объект] - PullRequest
0 голосов
/ 21 марта 2020

О проблеме

Я публикую три вещи

  1. простой текст
  2. Массив простого текста
  3. Image

При чтении опубликованных данных в php я смог прочитать только [объект, объект] для данных массива.

Ниже приведен код в JQuery

Подготовка данных для отправки в файл php.

var items = [];

$(Items).each(function(index, row) {
    var name = $(row).find("[name^='name']").val(); 
    var age = $(row).find("[name^='age']").val();           
    var sub1 = $(row).find("[name^='sub1']").val();         
    var sub2 = $(row).find("[name^='sub2']").val();         

    items.push({
        "name": name,
        "age": age,
        "sub1": sub1,
        "sub2", sub2
    });
});

var fileData = new FormData();

Это это хорошо

fileData.append('cust_first_name', $("[name='cust_first_name']").val());

Это вопрос

fileData.append('items', items);

Это хорошо

fileData.append('image1', $("[name='image1']").prop('files')[0]);

$.ajax({
    url: "myurl.php",
    cache: false,
    contentType: false,
    processData: false,
    data: fileData,
    type: 'post',
    success: function (response) {

    }
});

Ниже приведен код PHP.

//$data = json_decode(file_get_contents('php://input'), true);

Это хорошо

$cust_first_name = $_POST["cust_first_name"];

Это вопрос, который показывает [объект, объект]

<code>$items = $_POST["items"];

foreach($items as $item) {
    echo "<pre>";
    print_r($item);
    echo "
";}

Это хорошо

if(isset($_FILES["image1"])) {

}

1 Ответ

2 голосов
/ 21 марта 2020

Чтобы передать javascript объекты на сервер, вам нужно будет JSON.stringify передать их по сети (например, сериализации).

Поэтому измените fileData.append('items', items); на

for(var i=0;i<items.length;++i){
   fileData.append('items[]', JSON.stringify(items[i]));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...