我完全是新的AJAX,所以我甚至不知道從哪裏開始。我試過用jQuery延遲提交表單,但是這個腳本甚至沒有收到POST請求。延遲形式輸入與jQuery和顯示結果在同一頁上延遲
我的index.php
<?php
include 'includes.php';
$user_mining_level = 16;
$user_id = 1;
if(isset($_POST['mine'])) {
if($user_mining_level == 1) {
$random_ore = rand(1, 2);
}
if($user_mining_level > 15) {
$random_ore = rand(1, 3);
}
$random = rand(1, 5);
$xp_gained = $random * $ore_xp["$random_ore"];
$random_ore_name = $ore["$random_ore"];
$stmt = $conn->prepare('UPDATE invy_ores SET `' . $random_ore_name . '` = `' . $random_ore_name. '` + ' . $random . ' WHERE user_id = :user_id');
$stmt->bindValue(":user_id", $user_id, PDO::PARAM_INT);
$stmt->execute();
$result = 'You\'ve managed to mine ' . $random . ' ' . $ore["$random_ore"] . ' and gained ' . $xp_gained . ' EXP!';
}
?>
<!DOCTYPE html>
<html>
<head>
<title>RuneScape Click Game</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<div id="result"><?php echo $result; ?></div>
<form action="index.php" method="POST" class="gather">
<input type="submit" name="mine" value="Mine" id="ajax_bt"/>
</form>
</body>
對於這個理想的工作,我需要的形式提交了約3秒,並且將數據從$result
變量可見的<div id="result"></div>
內被延遲元件。我一直在尋找關於如何做到這一點的小時數,而我似乎無法找到答案。有人能讓我看到一個例子,或者指引我走向正確的方向嗎?
編輯:
這似乎對我想做的事情,但英寸的延遲後的形式不能正常工作。
$(document).ready(function() {
$(".gather").submit(function (e) {
e.preventDefault();
var form = this;
$("<img src='loader.gif' alt='Loading...' />").appendTo("#result");
$("result").hide();
setInterval(function() {
form.submit();
}, 1000); // in milliseconds
});
});
當我做了'$ result'變量仍然不確定。 – 2015-03-18 21:28:10
它仍然返回一個空變量。 – 2015-03-18 21:38:00
看起來像'$ .serialize()'不包含提交按鈕值。您可能想添加一個隱藏的輸入字段:''。 – phixr 2015-03-18 21:41:04