// sample.php <?php $a_name= $_POST['a_name']; $b_name= $_POST['b_name']; $c_name= $_POST['c_name']; $name_list=array('a_name'=>$a_name,'b_name'=>$b_name,'$c_name'=>$c_name); echo json_encode($name_list); ?> // sample.js function get_data(a_name,b_name,c_name){ const postData = new FormData; // フォーム方式で送る場合 postData.set('a_name', a_name); postData.set('b_name', b_name); postData.set('c_name',c_name); const data = { method: 'POST', body: postData, }; fetch(sample.php, data) .then(response=> { return response.json(); }) .then(res=> { alert('x:'+res.a_name); return res_name; }) .catch(error=> { alert(error); }) alert('y'); return response.json(); // ここにPHPから返された値を指定したい } var info= get_data('a','b','c'); alert('----'); alert(info); // get_data()を処理してから個々のコード(alert(info))を処理したい alert('last'); // alertの結果 y x:a (以降何も表示されない) // 理想 y x:a ---- Object last
やりたいことは、自作関数get_dataの返り値にfetchAPIで取得した値(形式:json)を指定したいです。そのうえで、コールバックであるget_data()を処理してからalert(info)を処理したです。
関数の一番上に変数を用意して、(then(response=> {〇 return response.json();}))の〇の部分に、用意した変数にresponse.json()を代入したり、リストで追加したりして、それを関数の返り値に指定しましたが、用意したときの値のままでした。
助言をお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/07 12:35
退会済みユーザー
2022/07/08 00:08
2022/07/08 00:22
2022/07/09 04:10