【发布时间】:2015-02-06 04:54:20
【问题描述】:
我正在使用 JQuery 和 Ajax 制作问题/状态发布系统,但是显示错误 "Notice: Undefined index: status in C:\xampp\htdocs\deadline\data.php on line 5" 这是我的代码行 "$var = $_POST['status']; "
我的系统工作正常,因为您必须登录才能发布问题(使用会话)但是问题在于我的 JQuery/AJAX 脚本作为我在 homepage.php 上的数据 没有被发送到 data.php (据我了解,这就是我的索引“状态”未定义的原因)。
我的代码
<?php
include("connection.php");
session_start();
if(isset($_SESSION['user_id']) && $_SESSION['user_id'] != "") {
}
else {
header("location:login.php");
}
$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();
?>
<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() {
//children code
var status = $("textarea#status").value();
if(status == "") {
return false;
}
var data = 'status='+status;
$.ajax({
type: "POST",
url: "data.php",
data: data,
success: function(data) {
$("#statustext").html(data);
}
});
});
});
</script>
</head>
<body>
<div id="global">
<form action="" onsubmit="return false">
<textarea id="status"></textarea>
<button id="postbutton">POST</button>
<a href="logout.php">LOGOUT</a>
</form>
<br/>
<br/>
<div id="allstatus">
<!-- SKELETON -->
<div id="status">
<div id="statuspic">
</div>
<div id="statusinfo">
<div id="statusname">JOnathan</div>
<div id="statustext"> this is the question</div>
<div id="statusoption"><button id="likestatus">LIKE</button></div>
<div id="statusoption"><button id="commentstatus">COMMENT</button></div>
<div id="statusoption"><button id="sharestatus">SHARE</button></div>
<div id="statusoption"><button id="statustime">TIME</button></div>
</div>
</div>
<!-- SKELETON -->
</div>
</div>
</body>
</html>
<?php
$var = $_POST['status'];
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 {
echo " success";
}
$sql = "INSERT INTO `question`(id, question) VALUES ('', '{$var}')";
$result = $conn->query($sql);
if($result) {
echo "inserted successfuly";
}
else {
echo "failed: " . $conn->error;
}
echo " the text: " .$var. " has been added to database.";
?>
应该如何工作
我想在我的 homepage.php 上使用 JQuery/AJAX 将数据发送到 data.php,然后将数据返回到 homepage.php。成功显示在我的 div #statustext 中。
意思是当我在 textarea 输入字段中写一个问题时,数据会存储在数据库中并检索并显示在浏览器上的我的 div 中。 请帮我谢谢..
【问题讨论】:
-
你想以哪种方式发布数据?
-
使用 post 方法。我在我发布的第一个代码 sn-p(即 homepage.php)中编写 JQuery 代码的方式。
-
这不是将数据发送到 POST 方法的方式。