У меня два вопроса:
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) {
}
}
спасибо @Clint_A, ваш ответ имеет для меня больше смысла ... не могли бы вы подсказать, как передать данные в массив ... так что длина не может быть равна нулю ... спасибо
Попробуйте удалить эту строку -> $scope.values = [];
и посмотрите, работает ли она.
Спасибо @Clint_A, это сработало, когда я передаю целочисленные значения field.id .... Теперь мне нужно немного поработать в PHP, например, вызвать идентификатор поля из одной таблицы, где идентификатор равен field.id, а затем я вставляю в другую таблицу .... спасибо за помощь
Прикольно, рад помочь. Я отправил его как ответ, так что вы можете принять его.
Кажется, вы отправляете пустой массив на свой php. Точка, в которой у вас есть консоль, массив значений все еще пуст, и поэтому ваше консольное сообщение тоже имеет пустой массив. Длина нулевая. Это означает, что вы еще не передали данные в свой массив $scope.values
на момент публикации этих данных.
Попробуйте удалить эту строку >> $scope.values = [];
и посмотрите, работает ли она.
Кажется, вы отправляете пустой массив на свой php. Точка, в которой у вас есть консоль, массив значений все еще пуст, и поэтому ваше консольное сообщение тоже имеет пустой массив. Длина нулевая. Это означает, что вы еще не передали данные в свой массив
$scope.values
на момент публикации этих данных.