Как отобразить и вставить данные массива Angular в PHP?

У меня два вопроса:

Q1) Как передать значения массива в PHP и вывести те же значения в PHP? Q2) Как вставить значения в базу данных, где ключ массива - это имя поля MySQL, а значение массива - это данные для этого конкретного поля?

Мой console.info показывает следующий вывод:

[]
firstname: "apple"
lastname: "banana"
length: 0

Но я не отображаю эти значения с помощью PHP ....

У меня есть HTML-форма, в которой отображаются настраиваемые поля:

<form>

            <div ng-repeat = "field in fields">

               <div ng-if = "field.required == 'yes'">                

                  <label>
                    {{ field.fieldlabel }}
                  </label>


                <input type = "{{ field.fieldtype }}" ng-model = "values[field.fieldname]">



               </div>        

            </div>  

             <div id  = "entryform-button">
                <input type = "submit" class = "btn-primary btn" id = "save" name = "submit" value = "Save" ng-click = "insertTrans()">
             </div>

        </form>

И контроллер Angular, который передает данные в PHP:

$scope.values = []; 

    $scope.insertTrans = function () {

        console.info($scope.values);

        //JSON.stringify($scope.values) 

        $http.post(
            "model/Form.php",
            { 'formvalues' : $scope.values }        
        ).then (function(data) {
            alert (data.data);
        });


    }

Но в PHP я пробовал json_decode, splash и пытался отобразить с помощью var_dump, echo, print_r, но не смог увидеть данные ....

<?php      

$data = json_decode(file_get_contents("php://input"));  
//$data = json_decode($_POST['formvalues'], ture);

if (count($data) > 0)  {     

    var_dump($data);
    //print_r($data['formvalues']);
    //echo $data['formvalues']; 
    //echo implode(" ", $data);
    //print_r (explode(" ",$data));

//  foreach ($data['formvalues'] as $value) {
//      echo $value;
//  }

    //  $sql= "INSERT INTO trans (  ) VALUES ( )";
    //  $conn->exec($sql);
    //  echo "Data Inserted into Database";         

}

PHP возвращает:

array(1) {
  ["formvalues"]=>
  array(0) {
  }
}

Кажется, вы отправляете пустой массив на свой php. Точка, в которой у вас есть консоль, массив значений все еще пуст, и поэтому ваше консольное сообщение тоже имеет пустой массив. Длина нулевая. Это означает, что вы еще не передали данные в свой массив $scope.values на момент публикации этих данных.

Clint_A 01.05.2018 22:26

спасибо @Clint_A, ваш ответ имеет для меня больше смысла ... не могли бы вы подсказать, как передать данные в массив ... так что длина не может быть равна нулю ... спасибо

aziz 01.05.2018 23:56

Попробуйте удалить эту строку -> $scope.values = []; и посмотрите, работает ли она.

Clint_A 02.05.2018 13:47

Спасибо @Clint_A, это сработало, когда я передаю целочисленные значения field.id .... Теперь мне нужно немного поработать в PHP, например, вызвать идентификатор поля из одной таблицы, где идентификатор равен field.id, а затем я вставляю в другую таблицу .... спасибо за помощь

aziz 02.05.2018 18:25

Прикольно, рад помочь. Я отправил его как ответ, так что вы можете принять его.

Clint_A 03.05.2018 07:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
465
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, вы отправляете пустой массив на свой php. Точка, в которой у вас есть консоль, массив значений все еще пуст, и поэтому ваше консольное сообщение тоже имеет пустой массив. Длина нулевая. Это означает, что вы еще не передали данные в свой массив $scope.values на момент публикации этих данных.

Попробуйте удалить эту строку >> $scope.values = []; и посмотрите, работает ли она.

Другие вопросы по теме