Ich habe eckig 2 Form und ich möchte es in der Datenbank mit Symfony API Web Service zu speichern, ich versuche, Daten aus eckigen Form zu holen und schickte es als JSON-Objekt an die URL-Endpunkt über Post-HTTP-Anfrage.Post eckig 2 Form Daten zu symfony api
ist dies die component.html
<div class="ui raised segment">
<h2 class="ui header">Demo Form: Sku</h2>
<form #f="ngForm"
(ngSubmit)="onSubmit(f.value)"
class="ui form">
<div class="field">
<label for="skuInput">SKU</label>
<input type="text"
id="skuInput"
placeholder="SKU"
name="sku" ngModel>
</div>
<div class="field">
<label for="select1" class="col-md-4 col-lg-4 col-sm-2 align form-control-label">Langues:français/anglais: </label>
<select class="form-control" name="note1" id="select1" ngModel>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<label for="select2" class="col-md-4 col-lg-4 col-sm-2 align form-control-label">Langues:français/anglais: </label>
<select class="form-control" name="note2" id="select2" ngModel>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<label for="select3" class="col-md-4 col-lg-4 col-sm-2 align form-control-label">Langues:français/anglais: </label>
<select class="form-control" name="note3" id="select3" ngModel>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<button type="submit" class="ui button">Submit</button>
</form>
</div>
der Service:
import { Injectable } from '@angular/core';
import {Http, Response, Headers, RequestOptions} from '@angular/http';
import { savePostEvaluationapi} from '../../constants/api.endpoints';
@Injectable()
export class EvaluationService {
http: Http;
constructor(protected _http: Http) {
this.http = _http;
}
savePostEvaluationService(postEvalform) {
const headers = new Headers({'Content-Type': 'application/json'});
const options = new RequestOptions({headers: headers});
const data = JSON.stringify(postEvalform);
return this.http.post("http://evaluation.dev/app_dev.php/api/savePostEvaluation", data, options).map((res: Response) => res.json());
}
}
und die component.ts
import {Component, OnInit} from '@angular/core';
import {EvaluationService} from '../../services/evaluation/evaluation.service';
@Component({
selector: 'app-eval-en-cours',
templateUrl: './eval-en-cours.component.html',
styleUrls: ['./eval-en-cours.component.css']
})
export class EvalEnCoursComponent implements OnInit {
constructor(private evaluationService: EvaluationService) {
}
ngOnInit() {
}
// savePostEvaluation(data: Object) {
// this.evaluationService.savePostEvaluation(data).subscribe((dataResponse) => {
// console.log('execute' + dataResponse);
// });
// }
savePostEvaluation(form: any): void {
this.evaluationService.savePostEvaluationService(form)
.subscribe(
data => data.json(),
() => console.log('done send form to api')
);
}
hier ist die symfony Web-Service:
/**
* @Rest\View()
* @Rest\Post("/savePostEvaluation")
* @return Response
* @internal param Request $request
*/
public function savePostEvaluation(Request $request){
header("Access-Control-Allow-Origin: *");
$data = json_decode($request->getContent(), true);
dump($data);die;
}
wenn ich versuche, den Datenwert dump es null Objekt zurück! jede Hilfe bitte!
Hat 'form' in' savePostEvaluation() 'irgendeinen Wert vor der Übergabe an' savePostEvaluationService() '? Es sieht nicht so aus, als ob Sie "ngModel" an irgendwelche Objekteigenschaften binden. Siehe [forms] (https://angular.io/guide/forms) -Dokumentation. Eine Zweibindung würde wie folgt aussehen: '[(ngModel)] =" someModel.propertyName "'. Die Bindungen wurden aktualisiert und Sie erhalten weitere Informationen zu dem, was Sie beim Senden sehen. –
hanks für Antworten zu teilen Alexander :) aber ich möchte das Formular als JSON-Objekt wie folgt senden: {Label: Label, Wert: Wert} zu einem Webservice, um es in der Datenbank zu speichern! - – sahnoun