AngularJS Json PHP

AngularJS $http Servis Post ( PHP)

Bu yazıda $http ve post yöntemi ile veritabanına veri yazma ve veritabanından veri okuma işlemini yapacağız.

Öncelikle Jquery ile angularjs arasındaki  post farkına değinmek zorundayım.

Jquery ile bir veriyi kaydetmek için şuna benzer bir yol izlenmekte;

Yukarıdaki yöntemde  veri http protokolü ile şu şekilde gönderilmektedir.

 

Angularjs ile veri yine http’nin post protokolü ile gönderiliyor fakat veri gönderilirken bir JSON datası olarak gönderilmektedir.  Aşağıdaki kod ile islem.php sayfasına 3 tane veri gönderilmektedir.

 

Bu yöntemde veri http protokolü ile şu şekilde görünmektedir.

Bu yüzden veriyi $_POST ile  doğrudan okumak mümkün olmamaktadır. (Angularjs php post data)

Bu yazıda angular $http  ifadesi ile veriyi okuma ve yazma işlemini yapacağız.  Açıklamaları bitirdikten sonra örneğimizi uygulamaya başlayalım. (Yukarıdaki kod php post json data örneğidir. php post data sample)

[divider]

SQL: Örnek aşağıdaki veritabanı üzerinden gerçekleştirilecektir.

 

SCRIPT KODU:  $scope.kaydet adında bir tane olay oluşturduk. Bu olay HTML içindeki buton ile çalıştırılacak. $scope.kaydet olayının içinde ise $http ile islem.php sayfasına veri gönderme ve alınan verinin $scope.personeller modeline yazılması işlemi var.

$http nesnesini kullanarak islem.php sayfasına post işlemini gerçekleştirdik.  islem.php sayfasına üç tane veri gönderdiğimiz görünüyor. ad,soyad ve yas bu veriler ng-model ile oluşturulmuş olan HTML sayfalarından alınmaktadır.

$http ile dönen veriyi islem (var islem) olarak tanımladığımız değişkende tutuyoruz. Eğer işlem başarılı olarak gerçekleşirse islem.success metodu çalışacak ve veriyi modele yapıştıracaktır.

[divider]

HTML KODU: HTML kodunda dikkat edilecek kısım ng-model ile oluşturulan alanlar. ng-model ile oluşturulan değerler ng-click ile çalıştırılan kaydet olayında kullanılmaktadır.

[divider]

ISLEM.PHP:  PHP tarafında işlem alıştığımız yöntemin dışında yapılmak zorunda. Makalenin başında bahsettiğim gibi JSON ile gönderilen veriyi  $_POST ile doğrudan okumak mümkün değil. Yukarıdaki post işlemini gerçekleştiren  PHP sayfası aşağıda ve kodlarımızı bölüm bölüm açıklayalım.

 

PDO ile veritabanı bağlantısı ve veritabanı nesnesi oluşturma. $vt veritbanı işlemlerini yapmak için oluşturulan nesne.

 

file_get_contents (php://input) ifadesi  POST ile gelen tüm ham datayı almak için kullanılmaktadır.  json_decode ile gelen JSON türüdeki veriyi diziye çevirip yine $_POST değişkenine kaydediyoruz. Bu aşamadan sonraki işlemleri tamamı aslında $_POST ile yaptığımız gibi oldu.

 

Veritabanına veriyi kaydetme kısmı.  Diğer sayfadan gelen değişkeler ile veriyi kaydettik.

 

Veritabanınaki veriyi okuyup JSON formatına dönüştürüp tekrar geriye göndermek için ekrana yazdırıyoruz.

 

Faydalanılan Kaynaklar

http://php.net/manual/tr/function.file-get-contents.php

http://php.net/manual/en/book.json.php

http://php.net/manual/en/wrappers.php.php

https://codeforgeek.com/2014/07/angular-post-request-php/

http://stackoverflow.com/questions/8893574/php-php-input-vs-post

Yorum

Yorum Yap