Post data d'un formulaire Angular 4 en PHP
Bonjour,
Je suis entrain de créer une petite application qui permet de récupérer les données depuis un serveur et après les modifier ou ajouter d'autres entrée avec les technologies (Angular4, PHP, Mysql)
1. Pour obtenir les données j'ai un fichier getClients.php
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?php
header('Access-Control-Allow-Origin:*');
include('connection.php');
$statement = $pdo->prepare( "select * from clients");
$statement->execute();
$results= $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
echo $json;
?> |
et ça marche très bien coté Angular j'arrive à récupérer mes données et les afficher, mon problème est: je n'arrive pas à envoyer données au serveur et je pense que le problème vient de PHP, le fichier utilisé pour la méthode POST est postClients.php:
Code:
1 2 3 4 5 6 7 8
| <?php
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
echo "Data envoyées";
$data = json_decode(file_get_contents('php://input'));
echo $data;
?> |
et j'ai essayé encore var_dump ($_POST) et ça ne marche pas.
mes fichier Angular sont:
1. clients.service.ts
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import { Injectable } from '@angular/core';
import {Http, Headers} from '@angular/http';
import 'rxjs/Rx';
@Injectable
export class ClientsService {
constructor(private http: Http) {}
// obtenir les client du serveur
getClients() {
return this.http.get('http://localhost/testPhp/getClients.php');
}
// form submit to serveur
postClient(client: any) {
const headers = new Headers({'Content-Type': 'application/json'});
console.log('Client object values from form: ');
console.log(client);
return this.http.post('http://localhost/testPhp/postClients.php', client, {headers: headers});
}
} |
et dans app.component.ts:
Code:
1 2 3 4 5 6 7 8 9 10
| onSubmit(form: NgForm) {
this.submitted = true;
this.clienteService.postClient(form.value).subscribe(
(formContents) => console.log('Form contents in app component sended ' + formContents),
(error) => console.log('Erreur de ' + error)
);
this.signupForm.reset();
} |
et avec le console je vérifie bien que mes données sont envoyées au service clients.service.ts :
avec var_dump($_POST) dans mon fichier postClients.php je n'ai pas d'erreur mais j'ai rien coté serveur
avec
Code:
1 2
| $data = json_decode(file_get_contents('php://input'));
echo $data; |
j'ai une erreur 500 :
Merci à vous si vous pouvez me dire comment je peux régler ce problème
Gr