我正在index.php
创建一个以登录页面开头的简单聊天室
有一个表单将密码变量发送到PHP_SELF
,PHP获取变量,如果密码正确,则用户成功进入聊天室。
有一个消息输入就像表单一样
但我不能再使用表单了,因为如果表单发送消息输入,页面重新加载,用户首先进入(登录页面)。
所以我想发送我的variable
而不重新加载页面。
我已尝试使用$var = "document.getElementById('input).innerHTML"
,但这不会返回任何值!
我尝试过使用AJAX。聊天室为index.php
,我的助理页面为post.php
index.php
AJAX的工作原理如下:
var message = 'document.getElementById('input).innerHTML';
$.ajax({
type: "POST",
url: 'post.php',
data: message,
success: function(data)
{
alert("200");
}
});
});
post.php
收到变量,然后再次向index.php
发送变量。
post.php
php:
if(isset($_POST['message'])) $mymsg= $_POST['message'];
和post.php
AJAX:
var message = '<?php echo $mymsg ?>';
$.ajax({
type: "POST",
url: 'index.php',
data: message,
success: function(data)
{
alert("200");
}
});
});
我的意思是我希望当用户成功登录并写下他的消息并点击提交时,这些都会发生。
index.php
接收变量并插入数据库表。
但这对我不起作用。
请说什么不对,或者我该怎么做?
答案 0 :(得分:1)
如果不重新加载浏览器,您可以使用javascript
将其放在<body>
代码
<script>
$(document).ready(function(){
$("#varbtn").click(function(){
var var1 = $("#var").val();
$.ajax({
method: "POST",
url: "post.php",
data: {
var:var1
},
success: function(data){
//#success will be the id of the div you want to put the response of the php file
$("#success").html(data);
}
});
});
});
</script>
在表单中,您无需创建<form>
标记
<input type="text id="var" />
<button id="varbtn"> Submit</button>
<!--this div will be the result of the post.php file-->
<div id="success"></div>
post.php中的
//will check if the person will direct visit that post.php, this is not secured enough but hes doing his job actually
<?php
if(isset($_SERVER['HTTP_REFERER'])){
if(!isset($_POST['var'])){
//your codes here
}
}
?>