3

i wish to post data to a php file using angularjs. I referred to the following link: http://www.cleverweb.nl/javascript/a-simple-search-with-angularjs-and-php/

i tried the same example given in the link but the data is posted in JSON format. I want the data in $_POST variable. how do i do that? here's my code:

search.js

   function SearchCtrl($scope, $http) {
        $scope.url = 'php/search.php'; // The url of our search
        // The function that will be executed on button click (ng-click="search()")
        $scope.search = function() {
            // Create the http post request
            // the data holds the keywords
            // The request is a JSON request.  i want the data in $_POST
            $http.post($scope.url, { "data" : $scope.keywords}).
            success(function(data, status) {
                $scope.status = status;
                $scope.data = data;
                $scope.result = data; // Show result from server in our <pre></pre> element
            }).
            error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;         
            });
        };
}

search.php

   <?php
// The request is a JSON request.
// We must read the input.
// $_POST or $_GET will not work! **but i want it to work!**
    $data = file_get_contents("php://input");
    $objData = json_decode($data);
// perform query or whatever you wish, sample:

include 'connect.php';
mysql_select_db($database,$con);  
$query = 'SELECT * FROM `product`';
$result = mysql_query($query) OR die(mysql_error()); 
$cnt = 0;
while ($row = mysql_fetch_assoc($result)) { 
    $nm = $row['name'];
    //print_r($nm.' ');
    if($objData->data == $nm) {

        $cnt++;
    }
}

if($cnt == 0) {
    echo ' Sorry, no match!';
}
else {
    echo ' I have found what you\'re looking for!';
}

how do i solve it?

1

2 Answers 2

2

Just normal PHP:

$_POST['title'] or $_POST['content'];

You can do it ;-)

This is an anwser to the comment beneath the post beneath.

Sign up to request clarification or add additional context in comments.

Comments

1

Here you go, you can access the variables in the php file as you normally would.

$http.post("yourpagehandler.php", {
    // Values you with to send to php page
    "title": $scope.title,
    "content": $scope.content
}).success(function(data, status) {
    // Values returned from php handler will be in data

}).error(function(data, status) {
    $scope.data = data || "Request failed";
    $scope.status = status; 
});    

2 Comments

it seems that i am too stupid to do this. Would someone tell me how to access the posted variables in php?
json_decode(file_get_contents('php://input'), true)["title"]; will access the data at "title".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.