代码之家  ›  专栏  ›  技术社区  ›  Pankaj

向php发布的图像、普通数据和数组数据显示[object,object]

  •  0
  • Pankaj  · 技术社区  · 4 年前

    我发布了三件事

    1. 纯文本
    2. 图像

    在用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"];
    

    这是它所显示的关注点[对象,对象]

    $items = $_POST["items"];
    
    foreach($items as $item) {
        echo "<pre>";
        print_r($item);
        echo "</pre>";  
    }
    

    if(isset($_FILES["image1"])) {
    
    }
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   nice_dev    4 年前

    要将javascript对象传递到后端,必须 JSON.stringify 它们通过网络传递(比如序列化)。

    fileData.append('items', items);

    for(var i=0;i<items.length;++i){
       fileData.append('items[]', JSON.stringify(items[i]));
    }