IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Obtenir data d'un formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 67
    Par défaut Obtenir data d'un formulaire
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

    et ça ne marche pas.

    mes fichier Angular sont:

    1. clients.service.ts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Angular envoyant les données au format json, $_POST n'est pas renseigné et il faut passer par json_decode. Donc a priori, tu as la bonne syntaxe.

    Tu peux essayer de debuguer en récupérant les données en deux fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $input = file_get_contents('php://input');
    var_dump($input);
    $data = json_decode($input);
    echo $data;
    Si tu as un message d'erreur, ça nous aiderait de le voir
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Obtenir l'ID du formulaire
    Par RunCodePhp dans le forum jQuery
    Réponses: 3
    Dernier message: 31/03/2011, 22h56
  2. [A-00] Obtenir la liste des Formulaires/Etats utilisant une requête
    Par popoliline dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/01/2009, 09h42
  3. [ASP .NET2] Post data sur un formulaire
    Par prez dans le forum ASP.NET
    Réponses: 8
    Dernier message: 17/08/2007, 10h59
  4. Problème pour récuperer data d'un formulaire
    Par paris13 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/12/2006, 10h33
  5. Petit cours pour éviter l'envoi POST data d'un formulaire apres un rafraîchissement
    Par maximenet dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 8
    Dernier message: 07/10/2006, 00h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo