функция успеха не работает в запросе HTTP post - AngularJS - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь сделать базовый c http пост-запрос, чтобы вставить данные в мою базу данных. у меня есть страницы:

  • register.php с регистрационной формой.

  • maincons.js с контроллерами приложения.

  • sqlregister.php с запросом INSERT.

im с использованием MeekroDB (библиотека функций sql).

Приложение вставляет данные в базу данных, но функция успеха не работает.

регистр. php:

<!doctype html>
<html lang="he" dir="rtl">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="../css/style.css">
    <script src="../js/angular.min.js"></script>

    <title>register</title>
  </head>
  <body>
  <div ng-app="appRegister" ng-controller="conRegister" class="grid">
  <form name="register" method="post" class="col-4 regform" ng-submit="valfunc()">
  <input  type="text" name="fname" ng-model="fname"  required>
  <input  type="email" name="email" ng-model="email"  required>
  <input type="submit" value="register">
  </form>  

</div>
<script src="../js/maincons.js"></script>
  </body>
</html>

maincons. js:

var app = angular.module('appRegister', []);
app.controller('conRegister', function($scope,$http) {
    $scope.valfunc = function () {
            $http.post(
                "sqlregister.php", {
                    'fname': $scope.fname,
                    'email': $scope.email
                }
            ).success(function(data){
                alert(data);
              })
              .error(function(data){
                alert(data);
              })

    }
});

sqlregister. php:

<?php
require_once '../system/sqlfunc.php';
$info = json_decode(file_get_contents("php://input"));
if(count($info) > 0) {
    $fname = $info->fname;
    $email = $info->email;
    $query=DB::insert('tbcustomers', [
        'Custname' => $fname,
        'email' => $email
      ]);
      if($query==1)
      echo "true";
      else
      echo "false";
}
?>

проблема в том, что функция успеха не предупреждает данные.

спасибо за помощников.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Согласно do c это должен быть синтаксис

var req = {
method: 'POST',
 url: 'http://example.com',
headers: {
  'Content-Type': undefined
 },
data: { test: 'test' }
}

$http(req)
.then(function(res){ 
    console.log(res);
 }, function(err){
     console.log(err);
 });
0 голосов
/ 10 апреля 2020
$http.post(
            "sqlregister.php", {
                'fname': $scope.fname,
                'email': $scope.email
            }
        )

Этот код не отправляет JSON, как вы ожидаете в PHP. Он отправляет данные в формате www-form-urlencoded.

Вы можете получить доступ к этим данным в PHP напрямую из суперглобального массива $ _POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...