请查看this。我试图理解代码,但在这里遇到了麻烦:
$("#submitmsg").click(function(){
var clientmsg = $("#usermsg").val();
$.post("post.php", {text: clientmsg});
$("#usermsg").attr("value", "");
return false;
});
submit
按钮,则称其为
post.php
页里面有所有内容,对吧?post.php
页面也没有真正加载
删除了return false
?我断定这是因为在我的form
中,
action = ""
,这意味着我基本上是在重新加载同一页面。
我说的对吗?post.php
页面
虽然在上面的$.post
中被称为?是因为我的AJAX并未真正加载页面,而是只是在所述页面中执行了所有操作而没有重定向我的当前页面?如果我的问题看起来前后矛盾,令人困惑,我事先表示歉意。如果有人可以建议我并说出我在这里出了错(我觉得很多),那真是太好了。
下面的表格:
<form name="message" action="">
<input name="usermsg" type="text" id="usermsg" size="63" />
<input name="submitmsg" type="submit" id="submitmsg" value="Send" />
</form>
post.php
页面如下:
<?
session_start();
if(isset($_SESSION['name'])){
$text = $_POST['text'];
$fp = fopen("log.html", 'a');
fwrite($fp, "<div class='msgln'>(".date("g:i A").") <b>".$_SESSION['name']."</b>: ".stripslashes(htmlspecialchars($text))."<br></div>");
fclose($fp);
}
?>
在jQuery AJAX调用上面的页面时(这是正确的术语吗?),是否可以访问上面的页面?当我使用$_POST
运行jQuery AJAX时,我想看到其中包含的echo
变量。
答案 0 :(得分:0)
首先,您将提交表单,因为您使用了输入Submit,并且不会触发您的jquery。您可以使用preventDefault这样的方法来完成此操作:
$("#submitmsg").on('click', function(e){
e.preventDefault();
var clientmsg = $("#usermsg").val();
$.post("post.php", {text: clientmsg});
$("#usermsg").attr("value", "");
return false;
});
您可以使用Chrome开发者工具(右键单击>检查元素)查看AJAX文件中发生的情况,然后转到“网络”标签。