#angularjs
Вопрос:
Я передаю свою пользовательскую информацию http angularjs. внутренний код-PHP, так как я новичок, я много ищу по этой проблеме. и перепробовал много методов с 2-х дней, но я не мог найти причину, и как это исправить?. это может быть просто, но я не смог найти.
1.Я отправляю свой запрос http post в AngularJS, я был отлажен, значение, которое я отправлю, будет
Значение отладки выглядит следующим образом: serializedParams:»send_id=78amp;send_name=Сомнительноamp;send_phone=4528amp;send_status=Из-за»
url: «вставить.php?send_id=78amp;send_name=Сомнительноamp;send_phone=4528amp;send_status=Из-за» результат: не определен
Я думаю, что URL — адрес правильный. но результат не определен
var app = angular.module("myapp", []);
app.controller("booking", function($scope, $http) {
$scope.paidops = ["Paid", "Due"];
$scope.value = "ADD";
$scope.insertvalues = function() {
alert($scope.id ' , '
$scope.name ' ,' $scope.phone
' , ' $scope.status);
alert($scope.name);
var Indata = {
'send_id': $scope.id,
'send_name': $scope.name,
'send_phone': $scope.phone,
'send_status': $scope.status
};
$http({
method: 'POST',
url: 'insert.php',
params: Indata,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(response) {
alert(JSON.stringify(response));
}, function(response) {
alert(response);
});
}
});
В PHP я получаю данные таким образом:
$connect = mysqli_connect("localhost:3307", "root", "", "ticket_booking");
if($connect === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$data = json_decode(file_get_contents("php://input"),true);
if(count(array($data)) > 0)
{
$id_received = mysqli_real_escape_string($connect, $data->send_id);
$name_received = mysqli_real_escape_string($connect, $data->send_name);
$phone_received = mysqli_real_escape_string($connect, $data->send_phone);
$status_received = mysqli_real_escape_string($connect, $data->send_status);
$btnname_received = mysqli_real_escape_string($connect, $data->send_btnName);
if($btnname_received == 'ADD'){
$query = "INSERT INTO society_tour(id,name, phone, status) VALUES ('$id_received','$name_received', '$phone_received','$status_received')";
if(mysqli_query($connect, $query))
{
echo "Data Inserted...";
}
else
{
echo 'Error';
}
}
?>
Комментарии:
1. нужна часть php, чем справиться с этим. Мы не можем так отвечать. Например, я вижу, что вы делаете сообщение, но передаете значение в строке запроса, вы уверены, что читаете строку запроса на стороне php, а не тело запроса ? (тело запроса должно быть параметрами «данные» в AngularJS из памяти 4-летней давности)
2. @Walfrat Я добавил свой PHP-код. . пожалуйста, посмотрите на это. .
Ответ №1:
Не совсем уверен в части PHP, но, как json_decode
и в PHP, можно с уверенностью предположить, что PHP ожидает JSON content-type
Если да, то вот как разместить данные по URL-адресу
var postUrl = 'insert.php'; // please check whether the url is correct
var dto = {
'send_id': $scope.id,
'send_name': $scope.name,
'send_phone': $scope.phone,
'send_status': $scope.status
};
$http({
url: postUrl,
method: 'POST',
data: dto,
headers: {
"Content-Type": "application/json"
}
})
//...
Комментарии:
1. Спасибо!! Он выдает данные, но данные имеют escape-символ., например {«данные»:» строка(74) «{«send_id»:»45″,»send_name»:»Подхи»,»send_phone»:125,»send_status»:»Оплачено»} В моем PHP данные равны нулю. Я добавил свой полный php-код. Является ли этот escape-символ причиной того, что я не получил данные в PHP?
2. Я не уверен, что JSON.stringify необходим, @Pavi_Web вы пробовали
data:dto
просто ?3. Спасибо, что сейчас это работает!! вместо данных: JSON.stringify(dto) только что попробовал данные:dto Спасибо @Naveen ,@Walfrat
4. Обновленный ответ… Давно не пользовался angularjs