2011-09-17 59 views
0

因此,我需要做的就是刷新存儲在MySQL數據庫中的php頁面上顯示的變量。該值是一個int,每次單擊表單中的提交按鈕時,該值就會減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連接的文件,則沒有配置mysql_connectmysql_select_db,它顯然不起作用。我已經有很多次了。

0

在你的「成功」,你可能只是扔在

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

這樣一來,只要您提交成功,這也將載入爲你輸出。只需將#WhereYouWantTheOutput替換爲您希望輸出的位置的名稱即可。