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日以上考えてやっと解決しました。彼との会話をご覧になりたい方はこちら