0
私は電子財布をトッピングするこの機能を持っています。しかし、私はトップアップすることができましたが、PHPが2回呼び出されたことが分かりました。したがって、偶数の場合は2倍、古い場合は2倍の+1になります。私はこの問題をどうやって解決できるのか分かりますか? Image linkこれは私が上記のリンクに直面する問題は、トリガ2回PHPコードトップアップ
topup.html
<!DOCTYPE HTML>
<html>
<head>
<!--
Customize the content security policy in the meta tag below as needed. Add 'unsafe-inline' to default-src to enable inline JavaScript.
For details, see http://go.microsoft.com/fwlink/?LinkID=617521
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: http://mp08.mybitmp.org https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
-->
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<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" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" href="css/jquery.mobile-1.4.5.css">
<script src="lib/jquery-1.11.2.min.js"></script>
<script src="lib/jquery.mobile-1.4.5.min.js"></script>
<script src="lib/jquery.validate.min.js"></script>
<script src="scripts/common.js"></script>
<!--<script src="scripts/home.js"></script>-->
<script src="scripts/topup.js"></script>
<script src="scripts/home.js"></script>
<!--<script src="https://www.paypalobjects.com/api/checkout.js"></script>-->
<title>Community Connection</title>
</head>
<body>
<div data-role="page" id="pageone">
<div data-role="header">
<h1>Community Connection </h1>
<a href="#" onclick="home()" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a>
<a href="#" onclick="logout()" data-icon="power" class="ui-btn-right">Logout</a>
</div>
<div data-role="content" class="ui-content" id="newitem">
<div id="credits"></div>
<input type="range" name="slidercredits" id="slidercredits" value="0" min="0" max="100">
<input type="button" id="btnTopUp" value="Top Up">
</div>
</div>
<footer data-role="footer" data-position="fixed" data-tap-toggle="false" class="jqm-footer">
<div data-role="navbar">
<ul>
<li><a id='btnHome' href='#' data-icon='home'>Home</a></li>
<li><a id='btnSearch' href='#' data-icon='search'>Search</a></li>
<li><a id='btnFind' href='#' data-icon='heart'>Find</a></li>
<li><a id='btnNotification' href='#' data-icon='info'>Notification</a></li>
<li><a id='btnMore' href='#right-panel' data-icon='bars'>More</a></li>
</ul>
</div><!-- /navbar -->
</footer>
</body>
</html>
topup.js
<!-- language: lang-js -->
(function() {
$(document).on("pagebeforecreate", function() {
printheader();
taskbar();
sidebar();
});
$(document).ready(function() {
// var slidercredits = $("#slidercredits").val();
getcurrentcredits();
$("#btnTopUp").bind("click", function() {
topup();
});
});
//Profile Section
function getcurrentcredits() {
var url = serverURL() + "/getcurrentcredits.php";
var JSONObject = {
"user_name": localStorage.getItem("userid")
};
$.ajax({
url: url,
type: 'GET',
data: JSONObject,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (arr) {
_getcurrentcredits(arr);
},
error: function() {
validationMsg();
}
});
}
function _getcurrentcredits(arr) {
userid = arr[0].user_name;
credits = arr[0].credits;
$("#credits").html("My Wallet: S$" + credits);
// $("#Sideusername").html("Username: " + userid);
// $("#imgProfilePicture").attr("src", serverURL() + "/images/" + profileimage + "_s");
}
function topup() {
var userid = localStorage.getItem("userid");
var slidercredits = $("#slidercredits").val();
alert("slidercredits" + slidercredits);
//var credits = $("#credits").val();
// if (validate()) {
//var xmlhttp = new XMLHttpRequest();
var url = serverURL() + "/topup.php";
var JSONObject = {
"user_name": userid,
"credits": slidercredits
};
$.ajax({
url: url,
type: 'GET',
data: JSONObject,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (arr) {
_topupResult(arr);
},
error: function() {
validationMsg();
}
});
url += "?userid=" + userid + "&credits=" + credits;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
topupResult(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
//}
}
//function _topupResult(arr) {
function topupResult(response) {
var arr = JSON.parse(response);
if (arr[0].result == "1") {
alert("Topup success" + credits + "-->>>" + slidercredits);
window.location = "topup.html";
}
else if (arr[0].result == "0") {
alert("Topup failed.");
}
}
})();
topup.php
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
header("Content-Type: application/json; charset=UTF-8");
error_reporting(E_ERROR);
include("global.php");
try{
$conn = new mysqli(server, dbuser, dbpw, db);
$username = $_GET["user_name"];
$credits = $_GET["credits"];
$query = "update Users set credits = credits + " . $credits . " where user_name = '" . $username . "'";
$result = $conn->query($query);
if (!$result){
$json_out = "[" . json_encode(array("result"=>0)) . "]";
}
else {
$json_out = "[" . json_encode(array("result"=>1)) . "]";
}
echo $json_out;
$conn->close();
}
catch(Exception $e) {
$json_out = "[".json_encode(array("result"=>0))."]";
echo $json_out;
}
?>