jQuery / AJAX和SQL查询在刷新浏览器时不会永久地在浏览器上显示html表单输入?

时间:2015-02-07 15:09:29

标签: php html ajax

我想在我的浏览器中显示所有textarea输入(因为如果我刷新我的页面,所有数据都会从我使用jquery / ajax通过我的html表单发送的内容中消失)。所以目前正在使用homepage.php中的jquery / ajax信息通过我的#textarea输入发送到data.php并成功返回以显示我的#status div。每次我按下POST按钮时,数据都会被添加到浏览器中,但是当我刷新页面时数据全部丢失(即使信息存储在我的sql表中)。我知道我需要使用while()循环,我已经尝试过,但我的代码都没有针对我想要实现的目标。

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}";



}





 ?>

2 个答案:

答案 0 :(得分:0)

您的选择是调用特定的会话ID,但您的插入不会在id列中存储任何内容。

答案 1 :(得分:0)

如果您使用的是ajax,我不确定为什么要继续讨论页面刷新,因为ajax允许您在不刷新页面的情况下发送/检索数据。

在你的成功函数中,返回的任何内容都在你的变量data中,但我敢打赌,如果你查看这个变量的内容,你会看到它没有任何东西,因为你的{{1没有设置为给出正确的响应。

您需要在data.php文件...

中使用此功能
data.php

然后当你回应响应时,你需要这样做......

header('Content-Type: application/json');

现在,在成功功能中,echo json_encode($var); 将保留data的内容,该内容实际上包含$var的内容。

然后在成功函数中,您可以显示结果......

$_POST['status']