#php #angularjs #post #ionic-framework
#php #angularjs #Публикация #ionic-framework
Вопрос:
я не могу отправить значение на свой php-сервер из своего приложения ionic. Я использую эти коды в html ;
<form ng-submit="addfavourite()">
<input type="text" ng-model="veri.mac_id">
<input type="submit" value="" class="favourite">
</form>
И я пытаюсь опубликовать некоторые значения в своем контроллере ;
$scope.veri = {};
$scope.addfavourite = function(){
var links = 'http://www.example.com/api.php';
$scope.veri.user_id = loggeduser;
$http.post(links, {user_id : $scope.veri.user_id, mac_id : $scope.veri.mac_id}).then(function (fav){
$scope.response = fav.data;
if ($scope.response == 1) {
$scope.messages = 'Correct.';
}
else if ($scope.response == 0)
{
$scope.messages = 'False.';
}
console.log($scope.veriler.mac_id);
});
};
Я пытаюсь что-то получить, чтобы получить значение mac_id, но я не мог этого сделать. Когда я смотрел на консоль, отображалась только ошибка «undefined».
Комментарии:
1. Ваша ng-модель — veri.mac_id, но вы
console.log
используете veriler.mac_id. Вот почему он не определен. Как вы пытаетесь получить это на PHP?2. извините, я забыл изменить это, потому что я перепробовал так много вещей. Когда я изменил на $scope.veri.mac_id и консоль снова выдают «undefined».
3. Как вы пытаетесь получить это на PHP?
4. $postdata = file_get_contents(«php: //input»); if (isset($postdata)) { $request = json_decode($postdata); $user_mail = $request->user_id; $mac_id = $request-> mac_id; } с помощью этого кода. я могу получить user_id, но mac_id не может опубликовать.
5. Откройте инструменты разработки вашего браузера и проверьте этот запрос. Проверьте, правильно ли отправляется JSON.
Ответ №1:
<form>
<input type="text" ng-model="veri.mac_id">
<input type="submit" value="SEND" class="favourite" ng-click='addfavourite()'>
</form>
JS
$scope.veri = {};
$scope.addfavourite = function(){
alert('DATA TO SEND ' $scope.veri.mac_id);
}
вы можете просто изменить свой код, как я написал ниже. где вы добавляете ng-click
и удаляете ng-submit
.
Комментарии:
1. спасибо за ваш ответ. Я попробовал то, что вы сказали, но я получаю «ДАННЫЕ ДЛЯ ОТПРАВКИ неопределенных» в окне предупреждения. Позвольте мне подробнее рассказать о моей проблеме. У меня есть список, который получает данные с моего php-сервера в формате JSON. Я могу успешно получать данные и выводить их на экран. Но мне нужно создать раздел избранного, и я создал форму и добавил входные данные для значений. Я отправляю user_id с помощью localstorage, и я могу успешно получить значение user_id на моем php-сервере. Но когда я пытаюсь отправить значение mac_id, я всегда получаю неопределенные ошибки. Я действительно не знаю, как я могу отправить привязанные данные с моего ввода на мой php-сервер.
2. вы вводите данные во входной текст?
3. обычно я привязываю данные к вводу из JSON. На экране я вижу данные во входных данных. Когда я пытаюсь ввести manual во ввод, но снова вижу undefined. Интересные вещи я использую другую форму на своих других страницах, и я могу правильно отправлять данные вручную. Но на этой странице я не могу этого сделать.
4. updatecode и с помощью этого кода я могу отправлять ручные данные, но я не могу отправлять привязанные данные. <форма> <тип ввода = «текст» имя =»mac_id» ng-модель =»mac_id» ng-значение =»veri.mac_id»> <тип ввода=»отправить» класс =»избранное» ng-click=»добавить избранное (mac_id)»> </form> $scope.veri = {}; $scope.addtofavourite = функция(mac_id){ var link = ‘ example.com/api.php ‘; var mac_id = mac_id; var user_id = loggeduser; оповещение (mac_id); $http.post(ссылка, {user_id : user_id, mac_id : mac_id}).затем (функция(res){ $scope.response = res.data; });};
Ответ №2:
Вы их настроили? Ionic отправит формат json, но PHP не может принять json по умолчанию. Вам нужно будет установить формат получения php в формате json.
header('Content-Type: application/json; charset=UTF-8');
//Allow all domain names to be accessed
header('Access-Control-Allow-Origin:*');
$content_type_args = explode(';', $_SERVER['CONTENT_TYPE']);
if ($content_type_args[0] == 'application/json') {
$_REQUEST = json_decode(file_get_contents('php://input'), true);
};
Попробуйте?
$scope.addfavourite = function(){
var user_id = $scope.veri.user_id;
var mac_id = $scope.veri.mac_id;
var data = {};
data.user_id = user_id;
data.mac_id = mac_id;
var links = 'http://www.example.com/api.php';
$http.post(links, data).then(function (fav) {
$scope.response = fav.data;
if ($scope.response == 1) {
$scope.messages = 'Correct.';
}
else if ($scope.response == 0) {
$scope.messages = 'False.';
}
console.log($scope.veriler.mac_id); //$scope.veri.mac_id ?
});};
Комментарии:
1. Спасибо, но моя проблема в моем приложении. потому что я отправляю значение user_id на свой сервер и успешно получаю, но я не могу отправить входное значение на свой сервер. Я привязываю данные mac_id к входным данным и пытаюсь отправить значения, но всегда переменная не определена.
2. updatecode и с помощью этого кода я могу отправлять ручные данные, но я не могу отправлять привязанные данные. <форма> <тип ввода = «текст» имя =»mac_id» ng-модель =»mac_id» ng-значение =»veri.mac_id»> <тип ввода=»отправить» класс =»избранное» ng-click=»добавить избранное (mac_id)»> </form> $scope.veri = {}; $scope.addtofavourite = функция(mac_id){ var link = ‘ example.com/api.php ‘; var mac_id = mac_id; var user_id = loggeduser; оповещение (mac_id); $http.post(ссылка, {user_id : user_id, mac_id : mac_id}).затем (функция(res){ $scope.response = res.data; });};