如何在PHP中显示和插入角度数组数据?

时间:2018-05-01 20:04:35

标签: php mysql arrays angularjs

我有两个问题:

Q1)如何将数组值传递给PHP并在PHP中回显相同的值? Q2)如何将值插入到数据库中,其中我的数组键是mysql字段的名称,数组值是该特定字段的数据?

我的console.log显示以下输出:

[]
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>

和将数据传递给PHP的Angular控制器:

$scope.values = []; 

    $scope.insertTrans = function () {

        console.log($scope.values);

        //JSON.stringify($scope.values) 

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


    }

但在PHP中我尝试过json_decode,启动并尝试使用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) {
  }
}

请建议。

万分感谢

1 个答案:

答案 0 :(得分:0)

你好像是在你的php上发布一个空数组。你拥有控制台的点,值数组仍然是空的,这就是你的控制台消息也有一个空数组的原因。长度为零。这意味着您在发布该数据时尚未将数据传递到$scope.values数组中。

尝试删除此行&gt;&gt; $scope.values = [];并查看它是否有效。