【问题标题】:How to send input values in ng-repeat? Ionic如何在 ng-repeat 中发送输入值?离子
【发布时间】:2017-02-27 20:17:22
【问题描述】:

我无法从我的 ionic 应用程序向我的 php 服务器发送值。我在 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 的值,但我做不到。当我查看控制台时,只显示“未定义”错误。

【问题讨论】:

  • 您的 ng-model 是 veri.mac_id 但您是 console.loging veriler.mac_id。这就是它未定义的原因。如何尝试在 PHP 上获取它?
  • 对不起,我忘了改变这个,因为我尝试了很多东西。当我更改为 $scope.veri.mac_id 和控制台再次给出“未定义”。
  • 如何在 PHP 上获取它?
  • $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 不能发帖。
  • 打开浏览器的开发工具并检查这个请求。查看 JSON 是否发送正确。

标签: php angularjs post ionic-framework


【解决方案1】:

你设置了这些? 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 ?

});};

【讨论】:

  • 谢谢,但我的问题出在我的应用程序中。因为我将 user_id 值发送到我的服务器并成功获取,但我无法将输入值发送到我的服务器。我将 mac_id 数据绑定到输入中并尝试发送值,但始终未定义变量。
  • 更新代码和这个代码我可以发布手动数据,但我不能发布绑定数据。
    $scope.veri = {}; $scope.addtofavourite = function(mac_id){ var link = 'example.com/api.php'; var mac_id = mac_id; var user_id = 登录用户;警报(mac_id); $http.post(link, {user_id : user_id, mac_id : mac_id}).then(function (res){ $scope.response = res.data; });};
【解决方案2】:
  <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

【讨论】:

  • 感谢您的回复。我试过你说的,但我在警告框中得到“要发送的数据未定义”。让我更多地解释一下我的问题。我有一个列表,它以 JSON 格式从我的 php 服务器获取数据。我可以成功获取数据并打印到屏幕上。但我需要制作一个最喜欢的部分,我制作了一个表格并为值添加输入。我用 localstorage 发送 user_id,我可以在我的 php 服务器中成功获取 user_id 值。但是,当我尝试发送 mac_id 值时,总是会出现未定义的错误。我真的不知道如何将绑定数据从我的输入发送到我的 php 服务器。
  • 您是否在输入文本中输入了数据?
  • 通常我将数据绑定到来自 JSON 的输入中。在屏幕上,我可以看到输入中的数据。当我尝试在输入中输入手动但我再次看到未定义。有趣的事情我在我的其他页面中使用了另一种形式,我可以正确发送手动数据。但是在这个页面我做不到。
  • 更新代码和这个代码我可以发布手动数据,但我不能发布绑定数据。
    $scope.veri = {}; $scope.addtofavourite = function(mac_id){ var link = 'example.com/api.php'; var mac_id = mac_id; var user_id = 登录用户;警报(mac_id); $http.post(link, {user_id : user_id, mac_id : mac_id}).then(function (res){ $scope.response = res.data; });};
猜你喜欢
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2017-07-09
相关资源
最近更新 更多