2017-12-06 13 views
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; 
    } 

    ?> 

答えて

0

topup.jsで機能topup()がトップアップURLへのAJAX呼び出しを行い、その後、直後に再度同じ事

xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 
を行い、このコードを持っているので
関連する問題