我试图通过ajax调用将一些数据插入到mysql中,但是当我试图从我的表单中获取数据时,javascript会抛出这个错误"未捕获的ReferenceError:anjelis未定义"在第一个变量上
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>aloooooooooooooo!!!!!!!!!</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css.css">
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
<script src="js/main.js"></script>
<script src="js/ajax.js"></script>
<script>
$(document).ready(function(e){
$.ajaxSetup({cache:false});
setInterval(function(){$('#chatlog').load('logs.php');},1000);
setInterval(function(){$('#user_list').load('user_list.php');},1000);
});
function submitChat(){
var uname=<?php echo $_SESSION['username']?>;
var msg=form.msg.value;
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById('chatlog').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('GET','insert.php?username='+uname+'&msg='+msg,true);
xmlhttp.send();
}
</script>
</head>
身体
<body>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">ChatCY</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li><?php if(!isset($_SESSION['username'])){echo '<a href="login.php">Login/Signin</a>';}else{
echo'<a href="logout.php">Logout</a>';}?></li>
</ul>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div id="chatlog" class="panel-body"></div>
</div>
</div>
<div class="col-md-2">
<div class="panel panel-default">
<div id="user_list" class="panel-body"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<form class="form-inline">
<form name="form" class="form-group" onsubmit="return false;">
<input type="textarea" class="form-control" name="msg" style="width:90%;"<?php if(!isset($_SESSION['username'])){
echo 'disabled="disabled" placeholder="You must be logged in to chat .."';}?>></input>
<button type="button" class="btn btn-default" name="send" <?php if(!isset($_SESSION['username'])){
echo 'disabled="disabled"';}?> onClick="submitChat();">send</button>
</form>
</form>
</div>
</div>
</div>
答案 0 :(得分:2)
您的代码中存在很多问题。
变量中缺少引号。在这里添加引号:
var uname = "<?php echo $_SESSION['username']?>";
会话未启动。使用以下命令启动会话:
session_start();
尽量不要混淆PHP和HTML。保持分开。不要使用echo
来编写HTML标记。
<input />
有一个结束标记,并且没有<input type="textarea"
...应该用<input type="text"
替换。使用jQuery或其他一些很棒的库来执行复杂的函数,比如AJAX调用等等。通过为所有浏览器提供功能和减少代码混乱,这使您和开发人员的生活变得更轻松。
$.ajax(function () {
"url": "/",
// Blah Blah
});
答案 1 :(得分:1)
你错过了代码
session_start()
,
那你可以用另一种方式做,在你的html中创建一个inpu标签
<input type='hidden' id='uname' value="<?php echo $_SESSION['username']?>">
在js 得到你的身份
var uname = $('#uname').val();
答案 2 :(得分:0)
错过了引号 -
var uname= "<?php echo $_SESSION['username']?>";
var form = $('form.form-group');
如果是
var uname = somevar;
somevar
将是未定义的。
您没有向函数或函数内部传递或定义form
。