2011-09-17 17 views
0

これで、MySQLデータベースに保存されているPHPページに表示される変数を更新するだけです。この値は、フォームからの送信ボタンをクリックするたびに1を引いた整数です。フォームをポストするためにAJAXを使用することを選択したので、ページはリフレッシュされません。したがって、フォーム提出とともに値が更新されていません。投稿ボタンをクリックした後のphpページのMySQLデータベースからの値をリフレッシュ

$qry = mysql_query("SELECT codes_remaining FROM users WHERE email= '".$_SESSION['email']."'"); 
while($row = mysql_fetch_array($qry)) { 
    if ($row['codes_remaining'] ==1) 
    { 
    echo "You have ".$row['codes_remaining'].' code remaining'; 
    } 
    else { 
echo "You have ".$row['codes_remaining'].' codes remaining'; 
} 
} 

このコードは、人が残したコードの数を表示します。同じページのフォームから送信ボタンをクリックすると、この値をリフレッシュする必要があります。

次のJavaScriptを使用してページを更新していません。

$("#form-submit").click(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
     cache: true, 
     type: 'POST', 
     url: 'process-register.php', 
     data: $("#form-register").serialize(), 
     success: function(response) { 
      $("#output-div").html(response); 
     } 
     }); 
    }); 

おかげで、 LS

+1

あなたのPHPコードはSQLインジェクション攻撃の影響を受けているようです。 –

+0

それでは、あなたは何にこだわっていますか? –

+0

さて、送信ボタンをクリックすると、値をリフレッシュする必要があります。私が言ったように、私はフォームを処理するためにAJAXを使用しているので、ページがリフレッシュされないので、値はリフレッシュされません。 – jcrowson

答えて

1

あなたが値を更新したい場合は、この(jQueryのが最も簡単です)のようにそれを実行します。

$(".submit").click(function(event) { 
    event.preventDefault(); 
    $(this).load('file.php',function(val){ 
     $('#output').text(val); 
    }); 
}); 

そしてfile.phpで:

<?php 
    connect_to_db(); 
    $returned = get_info_from_db(); 
    echo $returned; 
?> 

jQueryのは、情報をつかむだろうfile.phpで#outputに入れてください。あなたの「成功」で

1

は、たぶんそれは私だけだが、なぜjQueryの.LOAD機能を使わないのでしょうか?

$("#form-submit").click(function(e) { 
     e.preventDefault(); 
     $(this).load('process-register.php'); 
    }); 

たぶん、倫理的にもこれを行うための正しい方法が、毎回あなたが#の上でクリックしないで、そのファイルをロードするため、毎回それを処理し、フォーム、送信してください。また、MySQL接続yesを使用しているファイルをロードする場合、mysql_connectまたはmysql_select_dbが設定されていない場合は、明らかに動作しません。私はかなり長い間それを持っていました。

0

、あなたはおそらく自分の提出が成功するたびに、それはまたあなたのための出力をロードしますそのように

$("#WhereYouWantTheOutput").load("process-register.php"); 

に投げることができました。 #WhereYouWantTheOutputは出力を配置する場所の名前で置き換えてください。

関連する問題