私はフロントエンドとして角度を使用しており、バックエンドではPHPを使用しています。array_keys()は、パラメータ1が配列になることを期待しています
私はいくつかのデータをangleからphpへの配列として投稿し、コンソールにエラーarray_keys() expects parameter 1 to be array
を得ようとしています。
angular.js
var form_data_head = {};
form_data_head['doc_no'] = $scope.add.doc_no;
form_data_head['date'] = $scope.add.tanggal;
form_data_head['requisitor'] = $scope.add.requisitor;
$http({
method: 'POST',
url: "api/config/function-insert.php",
data: {
form_data_head: form_data_head,
tablename: 'pr_head',
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
}).then(function(response){
console.log(response.data);
}, function(response){
console.log("failed");
})
PHP
<?php
require_once 'db.php';
$postdata = file_get_contents('php://input');
$request = json_decode($postdata);
$table_name = $request->tablename;
$form_data_head = $request->form_data_head;
$fields = array_keys($form_data_head);
$sql = "INSERT INTO ".$table_name." (`".implode('`,`', $fields)."`) VALUES('".implode("','", $form_data_head)."')";
return $mysqli->query($sql);
?>
それがPHPに角度から配列を渡すために間違った方法ですか?
UPDATE
これは私がvar_dump($request->form_data_head);
object(stdClass)#3 (3) {
["doc_no"]=>
string(4) "test"
["date"]=>
string(24) "2016-05-10T04:26:02.857Z"
["requisitor"]=>
string(0) ""
}
'$要求 - > form_data_head'配列ではありません。 'var_dump($ request-> form_data_head)'を使って何が入っているかを確認し、それがあなたが望む配列であることを確認してください。 – IROEGBU
は質問の詳細を追加しました。 –
あなたはそれを試すことができます$ form_data_head =(配列)$ request-> form_data_head; –