与数据库连接的离散问题,以及输入处理

时间:2015-11-10 20:58:39

标签: javascript php angularjs ionic

我使用Ionic在Android上创建了一个应用程序。我的计算机上的一切工作正常,但是一旦应用程序在我的手机上打开,就会出现无效的情况。

第一个可能更难。 我有一个关于Mysql数据库的数据,并使用php获取该数据,将其作为json回显。然后我用角度使用jsonp检索它。它在我的电脑上工作正常,但我的手机没有任何反应。 这是我的JS文件:

$(function(){
  var App = angular.module("App");

  App.controller('companySearchController',function($scope,GetAPI){

    $scope.groups = [];
    $scope.message = "Fyrirtækja Leit";
    $scope.showOrNot = false;



    $scope.search2 = function(searchText){
      GetAPI.getCompany2(searchText).then(onCompanyComplete);
    };

    var onCompanyComplete = function(data){
      console.log(data['data']);

      for(var x = 0; x<data['data'].length;x++){
        var tempArray = [];

        for(var i = 0; i<5; i++){

          tempArray.push(data['data'][x][i]);
        }
        $scope.groups.push(tempArray);
        console.log(tempArray);
      }


    };

    $scope.toggleGroup = function(group) {
      if ($scope.isGroupShown(group)) {
        $scope.shownGroup = null;
      } else {
        $scope.shownGroup = group;
      }
    };
    $scope.isGroupShown = function(group) {
      return $scope.shownGroup === group;
    };


  });


}());

PHP文件:

$<?php
 $fname = $_GET['firstname'];
    $pdo = require_once('dbconfig.php');
    $sth=$PDO->prepare("SELECT * FROM  company WHERE  name LIKE '$fname%' LIMIT 200");
    $sth->execute();

$result = $sth ->fetchAll();

$jsonData = json_encode($result);

echo $_GET['callback'] . '('.$jsonData.')';

就像我说的那样,手机上没有显示任何内容,但是当我在计算机上的浏览器中运行时,一切正常。

然后是输入问题。我有一些所有链接的输入,当其他输入发生变化时,所有输入都会改变。当我输入输入时,在输入第二个数字后,它会自动填写一个数字。我的电脑上一切正常。

这是JS文件:

$(function(){
  var App = angular.module("App");

  App.controller('currencyController',function($scope,GetAPI){

    //$scope.run = false;


    $scope.search = function(){
      GetAPI.getCurrency().then(onCarComplete);
    };

    var onCurrencyComplete = function(data){

      $scope.currencyData = data;
        starter(1000);

    };

    var starter = function (price) {
      for(var i = 0; i<$scope.currencyData.length;i++){
        $scope.currencyData[i]['forApp'] = parseFloat(price/$scope.currencyData[i]['askValue']).toFixed(2);
        $scope.currencyData[i]['forAppReal'] = price/$scope.currencyData[i]['askValue'];
      }
    };



    $scope.changeCurrency = function(changed){
      var isk = changed['forApp']*changed['askValue'];
      console.log(isk);

      //console.log(changed['shortName'] + " " + changed['forApp']+ " is: "+ isk);

      calculate(isk);

      changed['forApp'] = parseFloat(changed['forApp']).toFixed(0);
    };


    var calculate = function(isk){
      for(var i = 0; i<$scope.currencyData.length;i++) {
        var stuff = isk/$scope.currencyData[i]['askValue'];
        stuff = parseFloat(stuff).toFixed(2);
        $scope.currencyData[i]['forApp'] = (stuff);

      }
    };

    $scope.clicked = function(item){
      item['forApp'] = parseInt(item['forApp']).toFixed(0);
    };

    GetAPI.getCurrency().then(onCurrencyComplete);

  });


}());

HTML文件:

$<ion-view title="companys" class="fullIon">
  <div class="list currencyList col-80 col-offset-10">
    <label class="item item-input item-floating-label" data-ng-repeat="item in currencyData" data-ng-click="clicked(item)">
      <input type="text" value="{{item.forApp}}" ng-model="item.forApp" ng-change="changeCurrency(item)"><p class="longNameText">{{item.longName}}</p>
    </label>
  </div>

</ion-view>

2 个答案:

答案 0 :(得分:1)

当我开始制作离子应用程序时,我有同样的经历。 尝试添加名为&#34; cordova-plugin-whitelist&#34;

的cordova插件
cordova plugin add cordova-plugin-whitelist

安装完成后,它就能正常工作。

答案 1 :(得分:0)

第二个问题,通过将输入类型从type =“text”更改为type =“number”来修复输入。但我还有第一个问题:(