使用AngularJs发布输入数组

时间:2016-05-27 09:16:53

标签: php html angularjs forms http-post

希望你很好,

我在html中有以下表格

<div class="table-responsive " >
<table class="table table-bordered">
<tr ng-repeat="x in [1, 2, 3, 4, 5]">
<td>
<td align="center">Price: <input name="price[]" type="number"  ng-model="info.price[x]"/>
</td>
</tr>
</table>
</div>

并使用以下方法将数据提交到插入函数:

ng-submit="addPrice(info)

这是我的功能:

$scope.addPrice= function(info){
info.price= [];
$http.post('../files/insert.php',{"price":info.price}).success(function(data){
if (data == true) {
}
});
}

在php文件中:

    $data = json_decode(file_get_contents("php://input"));     
    $price[]=mysqli_real_escape_string($con, $data->price);    
    $query = "INSERT into myTbl (price) VALUES ('$price[0]')";
    mysqli_query($con, $query);

如您所见,我试图插入第一个价格输入,但无论我在输入中输入什么,它都会在数据库中插入0!

问题出在哪里?!或者我做错了什么?

问候

1 个答案:

答案 0 :(得分:0)

从以下部分

中删除info.price初始化
$scope.addPrice= function(info){
    //info.price= [];
    $http.post('../files/insert.php',{"price":info.price}).success(function(data){
       if (data == true) {
       }
    });
}

现在,

$scope.addPrice= function(info){
    console.log(info.price); /* This will now show an array of values, 
                             that is value from each input within the ng-repeat*/
    $http.post('../files/insert.php',{"price":info.price}).success(function(data){
       if (data == true) {
       }
    });
}

在服务器端,您将获得$data->price中的值数组。