PHPバックエンドが特定の値を取る場合の配列([id] => [object Object])の問題を解決する方法

PHPバックエンドからフロントエンドデータをフェッチするときに発生しました

Array ( [id] => [object Object] )

はいobjタイプ

最初にコードを見てください、私が遭遇した問題

index.js

 return (
        <Dropzone
            accept="image/*,audio/*,video/*,.pdf"
            getUploadParams={
    
    ({
    
    file, meta}) => {
    
    

                const body = new FormData();
                body.append('fileField', file);
                body.append('id', id);

                console.log(file);
                console.log(id);
                return {
    
    url: 'http://localhost/cup/u_upload_img.php', body}
            }}

            onSubmit={
    
    handleSubmit}
            InputComponent={
    
    Input}
            getFilesFromEvent={
    
    getFilesFromEvent}
            submitButtonContent="submit"
        />
    )

上記のコードで使用しましたconsole.log()が、下の図が結果です

ここに画像の説明を挿入
server.js

<?php
    $json = json_encode($_POST);
    //print_r($json);

    $obj = json_decode($json, true);
    print_r($obj);

    $id = $obj->id;
    echo $id;
    

しかし、ネットワークによって得られた結果はArray ( [id] => [object Object] )

ここに画像の説明を挿入


解決:

まず、console.log(id)結果がオブジェクトであることを知る必要があります。上の画像を見ると、{}に含まれていることがわかります。

したがって、オブジェクトからid対応するtestを取得したいのですが

直接body.append('id', id.id);それに

つまり、console.log(id.id)あなたはtest価値を得ることができます

さて、フロントエンドは終わりました

バックエンドのコードを少し変更します

$json = json_encode($_POST);
//print_r($json);
$obj = json_decode($json, true);
print_r($obj);
//var_dump($json);
$id = $obj['id'];
echo $id;


はい、それだけです。StackOverflowの熱心な友人のおかげで、それを解決することができます。

2日以上考えてやっと解決しました。彼との会話をご覧になりたい方はこちら

おすすめ

転載: blog.csdn.net/weixin_43814775/article/details/108333118