我想在我的瀏覽器中顯示所有我的textarea輸入(因爲如果我刷新我的頁面,所有數據都從我通過使用jquery/ajax發送的html表單中去掉了)。所以目前使用homepage.php中的jquery/ajax信息通過我的#textarea輸入發送到data.php,並在成功顯示時返回是我的#status div。每次點擊POST按鈕時,數據都會添加到瀏覽器中,但是當我刷新頁面數據時全部丟失(即使信息存儲在我的sql表中)。我知道我需要使用while()循環,並且我已經嘗試過,但是我的代碼沒有針對我嘗試實現的方式工作。刷新瀏覽器時,jQuery/AJAX和SQL查詢不會永久在瀏覽器上顯示html表單輸入?
Homepage.php
<?php
include("connection.php");
session_start();
if(isset($_SESSION['user_id']) && $_SESSION['user_id'] != "") {
$sid = $_SESSION['user_id'];
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$sql = "SELECT * FROM `users` WHERE id='{$sid}'";
$query = $conn->query($sql);
$result = $query->fetch_assoc();
$fname = $result['fname'];
$lname = $result['lname'];
$time = time();
}
else {
header("location:login.php");
}
?>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
//daddy code
$ (document).ready(function() {
//mama code
$("button#postbutton").click(function() {
var data = $("#formpost").serialize();
var posterid = <?php echo $sid; ?>;
$.ajax({
type: "POST",
url: "data.php",
data: data,
success: function(data) {
$("#statustext").append(data);
$("textarea#text1").val('');
}
});
});
});
</script>
</head>
<body>
<div id="global">
<form id="formpost" action="" method="post" onsubmit="return false">
<textarea id="text1" name="status" value="" ></textarea>
<button id="postbutton">POST</button>
<a href="logout.php">LOGOUT</a>
</form>
<br/>
<br/>
<div id="allstatus">
<!-- SKELETON -->
<div id="wholestatus">
<div id="statuspic">
</div>
<div id="statusinfo">
<div id="statusname"><?php echo " Welcome to VLE, {$fname} {$lname} ";?></div>
<div id="statustext"> </div>
</div>
</div>
<!-- SKELETON -->
</div>
</div>
</body>
</html>
data.php
<?php
const DB_HOST = 'localhost';
const DB_USER = 'root';
const DB_PASS = '';
const DB_NAME = 'forum';
//connecting
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
} else {
}
if(isset($_POST['status']))
{
$var = $_POST['status'];
$sql = "INSERT INTO `question`(id, question) VALUES ('', '{$var}')";
$result = $conn->query($sql);
if($result) { }
else {
echo "failed: " . $conn->error;
}
echo "<br>{$var}";
}
?>
你試過Ctrl + F5鍵或Ctrl + R強制刷新?這可能是輸出緩存在瀏覽器中。如果事實證明這是問題,您可以設置一個標題來告訴瀏覽器它不應該緩存該頁面。 – GolezTrol 2015-02-07 15:13:38
狀態並沒有真正堅持客戶端,所以當你刷新時你基本上從頭開始。如果你使用ajax,你爲什麼要刷新頁面? – Slime 2015-02-07 15:15:49
我只想從sql表中檢索所有數據,使用一個while循環來獲取assoc。問題是我的代碼不會工作...我的$ var包含所有的textarea輸入,並存儲在sql表中的問題,但是當我刷新我的瀏覽器的HTML顯示不見了。如果你明白我的意思.. – 2015-02-07 15:21:16