AngularJS ng-модель не может привязать входное значение

#javascript #php #angularjs

#javascript #php #angularjs

Вопрос:

у меня есть input на моей странице, и его значение меняется с помощью - кнопок и, этот ввод содержит директиву ng-model для передачи его значения в файл angular controller js, и внутри базы данных submit MYSQL input есть кнопка для значения

проблема в том, что каждый раз, когда я нажимаю submit кнопку, значение, вставленное в базу данных, возвращает нулевое значение

Как я могу присвоить значение input , которое изменяется с помощью кнопок, к ng-model ??

index.php файл :

 <!-- October Evaluation Start -->
    <div class="row">

      <div class="card shadow mb-4" style="width: 900px;">
        <div class="card-header py-3">
          <div class="row">
            <div class="col">
              <h6 class="m-0 font-weight-bold text-primary">October evaluation</h6>
            </div>
            <div class="col"><button id="plus11" class="btn btn-info text-right">Add new</button>
            </div>
          </div>
        </div>



        <div class="card-body">
          <form>
          <div class="form-group">
            <label for="exampleFormControlSelect1">select user</label>
            <select class="form-control" id="exampleFormControlSelect1" ng-model="gid">
              <?php
              $con = mysqli_connect("localhost","root","","users");
              $sql = mysqli_query($con, "SELECT name From myusers");
              $row = mysqli_num_rows($sql);
              while ($row = mysqli_fetch_array($sql)){
              echo "<option value='". $row['name'] ."'>" .$row['name'] ."</option>" ;
              }
              ?>

            </select>
          </div>
          <br>
          <table class="table table-hover">
            <thead>
              <tr>
                <th scope="col">#</th>
                <th scope="col">Evaluation</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <th scope="row">1</th>
                <td>
                <div class="input-group">
    <span class="input-group-btn">
        <button type="button" class="btn btn-danger btn-number"  data-type="minus" data-field="quant[2]">
          <span><i class="fas fa-minus"></i></span> 
        </button>
    </span>
    <input type="text" id="trig" name="quant[2]" class="form-control input-number" value="1" min="1" max="5" ng-model="onoctober">
    <span class="input-group-btn">
        <button type="button" class="btn btn-success btn-number" data-type="plus" data-field="quant[2]">
            <span><i class="fas fa-plus"></i></span>
        </button>
    </span>
</div>

                </td>
              </tr>

            </tbody>
          </table>
          <input type="button" value="submit" class="btn btn-primary" ng-click="insertEval()" />
          </form>
        </div>
      </div>

    </div>
    <!-- October Evaluation End -->
    <br><br>
  

Файл js контроллера AngularJS:

 var app = angular.module("myApp", []);

app.controller('userEval', function ($scope, $http) {

$scope.insertEval = function () {
    $http.post(
        "inserteval.php",
        {
            'gid': $scope.gid,
            'onoctober': $scope.onoctober,
           
         }).success(function (data) {
            alert(data);
           
        });


}

});
  

inserteval.php файл:

 <?php

$connection = mysqli_connect("localhost","root","","users");
$data  = json_decode(file_get_contents("php://input"));

if(count($data)>0)
{
     $gid = mysqli_real_escape_string($connection,$data->gid);
     $onoctober = mysqli_real_escape_string($connection,$data->onoctober);


     $query = "INSERT INTO `myusers`(`name`, `on-october`) VALUES ('$gid','$onoctober')";


if(mysqli_query($connection,$query)){

echo "Done , new User added !";
}else {
 echo "Error add !";
}

}

?>
  

Фотографии для иллюстрации:

введите описание изображения здесь
введите описание изображения здесь

Комментарии:

1. Вы не связали ng-app и ng-controller в своем HTML-шаблоне. Попробуйте добавить <div class="row" ng-app="myApp" ng-controller="userEval"> ... </div> к родительскому элементу шаблона HTML.

Ответ №1:

В поддержку @Sujay Subrahmanya вы должны сообщить своему html-файлу, что он является частью какого приложения и какого контроллера. Вот синтаксис для его информирования

 <body ng-app="myApp" ng-controller="userEval">
   <!-- Put your index.php content -->
</body>