2016-04-06 4 views
0

私のプロジェクトの課題を行います。私はリフレッシュWebページなしでmysqlを更新するためにajaxを使用する必要があります。URLをリクエストするためにajaxを遅延させる方法

if($_GET['do'] == 'viewcredit'){ 
    $quser = DB::query("SELECT * FROM ".DB::table('game_jnship_user')." WHERE uid = '$_G[uid]'"); 
    $ruser = DB::fetch($quser); 
    //$moneyN = $ruser['money']; 
    echo $ruser['money']; 
} 

二PHPファイルがb.phpし、以下のようにコード(何らかのアクションを行う)である:

$quser = DB::query("SELECT * FROM ".DB::table('game_jnship_user')." WHERE uid = '$_G[uid]'"); 
$ruser = DB::fetch($quser); 
$moneyN = $ruser['money']; 
$gcoin = $ruser['gcoin']; 
if($_GET['do'] == 'treasurehunt'){ 
    $moneyadd = $moneyN + 1; 
    DB::query("UPDATE ".DB::table('game_jnship_user')." SET money = '$moneyadd' WHERE uid = '$_G[uid]'"); 
} 

は、私が最初に(ビューのユーザークレジット)として以下のa.php、コードで、2 PHPファイルを持っています 以下のように

マイhtmlコード:

<script src="https://code.jquery.com/jquery-1.12.2.js"></script> 
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
<script>jQuery.noConflict();</script> 
<script> 
jQuery(function() { 
    jQuery(".submit_button").click(function() { 
     var url = "a.php?do=viewcredit"; 
     var decodedUrl = decodeURIComponent(url); 
     jQuery.ajax({ 
      type: "POST", 
      url: decodedUrl, 
      cache: true, 
      success: function(html){ 
      jQuery("#money").html(html); 
      } 
     }); 
    }); 
}); 
</script> 
<div id="money">$ruser[money]</div> 
<a href="javascript:;" onclick="showWindow('jn_spop', 'b.php?do=treasurehunt')" class="c_button submit_button"><strong>Confirm</strong></a> 

だから、今私はhtmlの最後の行、<a>Confirm</a>を初めてクリックします。<div id="money">$ruser[money]</div>は最新の結果を表示しません。

$ruser[money] = '1';私は<a>Confirm</a>をクリックした後、mysqlは2moneyを更新してきたが、私はもう一度<a>Confirm</a>をクリックした後<div id="money">$ruser[money]</div>はまだ1を示し、言わせて、<div id="money">$ruser[money]</div>2を示す、[OK]を(しかし、MySQLが更新されていますmoney3

したがって、の遅延をa.php?do=viewcreditにする場合は可能ですか?それは別の方法があります最新の$ruser[money]最新のWebページを取得することができますか?

ありがとうございます。

+0

と次の2つの' onclick'のイベントハンドラを持っている – Chay22

+0

HTMLに結果を誇示するために、AJAXにそれを伝えます:詳細は は、このリンクをチェックしてください。 'treasurehunt'という名前のサーバ上で操作した後に' div#money'を更新する必要があれば、 'showWindow'の中で' viewcredit'のコードを動かすことができます。実装が欠落しているため、どのように表示することはできません。 –

+0

また、実際の '$ ruser ['money']'を 'treasurehunt'に戻して' div#money'を更新することもできます。 –

答えて

0

async:falseを設定できます。 しかし、あなたのAjaxリクエストに時間がかかる場合は、いくつかのローダーが表示されるので、ユーザーは実行中のアクションを理解するでしょう。あなたは `b.php`の結果をフェッチする必要がhttp://api.jquery.com/jquery.ajax/

jQuery.ajax({ 
     type: "POST", 
     url: decodedUrl, 
     cache: true, 
     async: false, 
     success: function(html){ 
     jQuery("#money").html(html); 
     } 
    }); 
+0

どのように同様にajaxコードを編集するには?私は初心者です。 –

関連する問題