2017-09-09 91 views
-4

我有一個cordova應用程序,我想連接到遠程mysql數據庫。其實我想插入到數據庫的一些數據(例如用戶名)。你能幫我一個簡單的例子嗎?我在互聯網上閱讀了很多東西,但在科爾多瓦沒有任何作品。我知道我必須使用AJAX來調用一個php腳本,它在一個簡單的web應用程序上運行正常,但不能在cordova中運行。你能給我一個示例代碼嗎?我只需要獲取表單輸入的值(例如一個字符串)並提交將數據存儲到遠程mysql數據庫。任何幫助真的很感激。如何從我的cordova應用程序連接到遠程mysql數據庫?

+1

向我們顯示您的代碼,它應該工作,因爲它是完全一樣的。檢查控制檯是否有任何錯誤,並檢查你的'meta'標籤是否爲缺省Cordova'index.html'爲了安全原因阻止了很多基於請求的操作。 – Script47

回答

0
<html> 
<head> 
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;"> 
    <meta name="format-detection" content="telephone=no"> 
    <meta name="msapplication-tap-highlight" content="no"> 
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
    <link rel="stylesheet" type="text/css" href="css/index.css"> 
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script> 
    <link rel="stylesheet" href="js/libs/jqueryui/css/base/minified/jquery-ui.css" > 
    <script> 

    </script> 
</head> 
<body> 
    <div id="demo"></div> 
    <div data-role='page' id='UsersSignUp'> 
     <div data-role='header' class='ui-content'> 
      <h1>Sign up for free</h1> 
      <p>please fill out the form</p> 
     </div> 
     <div data-role='main' class='ui-content'> 
      <form id="signupForm"> 
       <input type='text' id='username' name='username'> 
       <input type='button' value='submit' class='blink' id="SignUpAjaxButton"> 
      </form> 
     </div> 
     <div data-role='footer'> 
      <p>&copy; OnLineGym.com</p> 
      <p>Created by <a href='mailto:[email protected]'>Teo Theodoridis</a></p> 
     </div> 
    </div> 
    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="js/index.js"></script> 
    <script type="text/javascript" src="js/libs/jquery/jquery.js"></script> 
    <script type="text/javascript" src="js/libs/jquery-ajaxtransport-xdomainrequest/jquery.xdomainrequest.min"></script> 
    <script type="text/javascript" src="js/libs/jqueryui/css/jquery-ui.js"></script> 
</body> 

0
var app = { 
// Application Constructor 
initialize: function() { 
    document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); 
}, 
// deviceready Event Handler 
// 
// Bind any cordova events here. Common events are: 
// 'pause', 'resume', etc. 
onDeviceReady: function() { 
    this.receivedEvent('deviceready'); 

}, 
// Update DOM on a Received Event 
receivedEvent: function (id) { 
    var parentElement = document.getElementById(id); 
    var listeningElement = parentElement.querySelector('.listening'); 
    var receivedElement = parentElement.querySelector('.received'); 

    listeningElement.setAttribute('style', 'display:none;'); 
    receivedElement.setAttribute('style', 'display:block;'); 

    console.log('Received Event: ' + id); 
} 
}; 

app.initialize(); 

document.getElementById("SignUpAjaxButton").addEventListener("click", loadDoc); 

function loadDoc() { 
var str0 = $('#username').val(); 
window.alert(str0); 
/* var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) { 
document.getElementById("demo").innerHTML = this.responseText; 
} 
}; 
xhttp.open("GET", "http://127.0.0.1/register.php?q="+str0, true); 
xhttp.send(); */ 
} 
; 
0

如果您正在使用AngularJS那麼你可以做一個AJAX調用是這樣的:

var loadData = function() { 
    var config = { 
     params: { 
      whatever: xy 
     }, 
     timeout: 15000 
    }; 
    var url = 'http://yourdomain/api/data'; 
    return $http.get(url, config); 
}; 

不要忘了在你的角度服務注入HTTP模塊:

AngularApp.factory('DataService', function ($http) { 

而且至少檢查您的內容安全,政策的index.html文件,你必須讓你的科爾多瓦應用中的所有通話這樣的:

<meta http-equiv="Content-Security-Policy" 
    content=" 
    default-src * 'self'; 
    img-src 'self' data:; 
    style-src 'self'; 
    script-src 'self' 'unsafe-inline' 'unsafe-eval'; 
    "> 

那麼你可以做你的服務器上你要如什麼都讀取,寫入mysql數據庫。

+0

其實,我不使用Angular。我使用JQuery Mobile –

相關問題