3

I have my client app sending a json object to server which is in php.

Client side code:

 var jacc = JSON.stringify(acc);console.log(acc);
 $http.post($rootScope.url+'signup.php',jacc)
   .then(function(response){console.log(response.data);});

which works perfectly fine.

But at server side

 $acc = $_POST["jacc"];
  $code = $_POST["code"];//received later
  if($acc){
     echo 1;//this thing never echoed. 
 }
  elseif ($code  && matchCode($code)){
    if(addAcc($acc))
        echo 1;

}
else echo 0 ." failed";
die();

The output at the console will be always "0 failed". Tried changing the post request to httpbin.org/post which works well. so the problem is with my php script. Also tried a var_dump($_POST) which also returns null value.

6
  • You have 2 echo's? echo echo 0? also elseif instead of else if? Commented Sep 25, 2015 at 18:38
  • ya i do have 2 echos.. but the program control is not entering to that loop at all.. i always get the last echo as output. and no parse error for my elseif. Commented Sep 25, 2015 at 18:44
  • I guess you post a string. But you need to post an object with key:value. Can we see a console.log(jacc) ? Commented Sep 25, 2015 at 18:58
  • @NemanjaT elseif is perfectly fine, according to the PHP manual and the PSR-2 Coding Style Guide. Commented Sep 25, 2015 at 18:58
  • My bad on the elseif, I haven't used or seen it in a while, I guess, so I forgot. Shouldn't it go $http.post({ url: $rootScope.url+'signup.php', data: jacc })... though? Or $http.post($rootScope.url+'signup.php', { jacc: jacc })..., a reference from docs.angularjs.org/api/ng/service/$http Commented Sep 25, 2015 at 19:02

2 Answers 2

4

Your JavaScript code should be something like :

var params = { jacc : JSON.stringify(acc) };
// or var params = acc; if acc is already an object with the "jacc" property
$http.post($rootScope.url+'signup.php', params)
   .then(function(response){
       console.log(response.data);
   });

Your error is that you try to post a "string" when you need to post an object with key:value.

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

5 Comments

Then gives us more things. A console log of what you actually posts for example
whatever the content it has.. its a json string.. :P and like you said when its sent as a key value pair.. it needs to be reached the server.. :/
here is my console.log(params) Object {jacc: "{"district":"District name","name":"sijin","number":9400xxx857}"}
tried with nodejs.. no issues accepting post strings :v
Can you maybe try that : stackoverflow.com/questions/1282909/… ?
0

tiltem saved my day.. thanks to dievardump for help.. Finally i got the issue and able to fix it. When using JSON content-type the $_POST array will not populate. All i had to do to fix it was $rest_json = file_get_contents("php://input"); $_POST = json_decode($rest_json, true);

Comments

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.