2017-04-15 39 views
0

我想比較cordova應用程序中輸入的輸入值到我數據庫中的表中。Cordova jquery ajax發佈到服務器php文件

這是我的jquery ajax開機自檢:

$('.postToken').click(function(){ 


    console.log($('.valueToken').val()); 
    var tokenValue = $('.valueToken').val(); 

    $.ajax({ 
     type: "POST", 
     url: "http://example.com/fysioWebapp/php/get_schema.php", 
     data: { dataString: tokenValue }, 
     cache: false, 
     success: function(){ 
      alert("Order Submitted"); 
      } 
    }); 

,這是我的服務器上get_schema.php:

<?php 
    include("connect.php"); 

    $stringData = $_POST['dataString']; 
    ini_set('display_errors', 1); 

    var_dump($stringData); 
?> 

但它返回我的價值數據null我第一類在我的應用程序科爾多瓦然後刷新php頁面,但不斷返回我null。有人能幫我解決這個問題嗎?

+0

你使用jquery mobile嗎?您應該使用jquery mobile的tap或touchstart事件。按照我的經驗,點擊事件將會執行,以便在我的Cordova應用程序中得到空值。 –

+0

不使用jquery mobile,它現在只是一個基本設置。想在未來使用ionic2 – Sreinieren

+1

好的。祝你好運。對於一些建議,您應該使用本地方式或xamarin構建本機應用程序。原因是webview的CSS計算可以在不同的移動設備上進行更改,並且很難維護它。 (/^\) –

回答

1

編輯:

你要看看是否在數據庫表中存在這樣

<?php 
include("connect.php"); 

$stringData = $_POST['dataString']; 
ini_set('display_errors', 1); 

$checkToken = "SELECT * FROM Exercises WHERE YOUR_FIELD_NAME = ('$stringData')"; 
$checkResult = mysqli_query($conn, $checkToken); 

if (mysqli_num_rows($checkResult) > 0) { 

echo "Result already exists"; 

} else { 

echo "0 results"; 

} 

?> 

將YOUR_FIELD_NAME替換爲用於標記的列名稱。

我已經提供的JavaScript將控制檯日誌記錄是否存在令牌。

原始

當您刷新PHP文件$ StringData是將不確定。

試試這個。

$('.postToken').click(function(){ 
    console.log($('.valueToken').val()); 
    var tokenValue = $('.valueToken').val(); 

    $.ajax({ 
     type: "POST", 
     url: "http://example.com/fysioWebapp/php/get_schema.php", 
     data: { dataString: tokenValue }, 
     cache: false, 
     success: function(data){ 
      console.log(data); 
      alert("Order Submitted"); 
     } 
    }); 
}); 

這應該控制檯記錄var_dump的結果。

如果不更改這一行的PHP文件。

var_dump($stringData); 

到。

echo var_dump($stringData); 
+0

而不是如何比較php中的數據字符串,如果它沒有定義? – Sreinieren

+0

您想與之比較什麼?來自你的數據庫的東西? –

+0

這是我的console.log:'string(4)「test」string(4)「test」0 results'。這是我的var_dump在php上:'NULL NULL 0 results' – Sreinieren

0

由於跨域問題,您不能只在您的cordova應用程序中使用ajax。要麼你必須設置你的服務器或PHP來得到它,或者你可以使用jsonp

對於Ajax解決方案,你可以在你的php嘗試這個辦法:

<?php 
    header("Access-Control-Allow-Origin: " . $_SERVER["HTTP_ORIGIN"]); 
    header("Access-Control-Allow-Methods: POST"); 
    header("Access-Control-Allow-Credentials: true"); 
    header("Access-Control-Allow-Headers: origin, referer, content-type"); 
    header("Access-Control-Max-Age: 1728000"); 

    if(strtoupper($_SERVER['REQUEST_METHOD']) == 'OPTIONS'){ 
     header("Content-Type: text/plain"); 
     header("Content-Length: 0"); 
     http_response_code(204); 
     exit; 
    } 

include("connect.php"); 

$stringData = $_POST['dataString']; 
ini_set('display_errors', 1); 

var_dump($stringData); 
?> 
+0

嘗試並在我的get_schema.php中粘貼了您的代碼,但無法正常工作。 – Sreinieren