2016-05-27 7 views
-1

hoffen, dass Sie in Ordnung und gutPosting Array von Eingabe mit AngularJS

ich habe das folgende Formular in 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> 

und im Absenden Daten an die Insert-Funktion dies mit:

ng-submit="addPrice(info) 

Hier ist meine Funktion:

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

in der PHP-Datei:

$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); 

wie Sie ich versuche, siehe die erste Preiseingabe einzufügen, aber was auch immer ich in den Eingang geben Sie 0 in die Datenbank einfügen!

wo ist das Problem?! oder was mache ich falsch?

Grüße

+0

Warum initialisierst du 'info.price = []', bevor du es postest? Und wie Sie erwarten, dass etwas Wert in diesem Array sein sollte? – Achu

+0

sogar ohne Initialisierung, es immer noch einfügen 0 – MSMC2

Antwort

0

Entfernen info.price Initialisierung aus dem folgenden Teil,

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

Jetzt

$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) { 
     } 
    }); 
} 

In der Server-Seite finden Sie eine Reihe von Werten in $data->price erhalten.

+0

danke, aber es immer noch einfügen 0 – MSMC2

+0

Do $ data-> Preis bekommen Wert von der Client-Seite übergeben? Überprüfen Sie $ data-> price value auf der Server-Seite –

+0

das, was ich in der PHP-Datei verwenden $ price = mysqli_real_escape_string ($ con, $ data-> Preis); $ query = "INSERT in myTbl (Preis) VALUES ('$ price [0]')"; Ich fülle alle Elemente des Preises in Form! aber es fügt 0 in die Datenbank ein. – MSMC2