Ajax简单的异步问题【异步老刷新】???

onepointred onepointred 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
三个页面:ajax.js / ajax.php / index.php
ajax.js

/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
 var ajax=false;
 try {
  ajax = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   ajax = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   ajax = false;
  }
 }
 if (!ajax && typeof XMLHttpRequest!='undefined') {
  ajax = new XMLHttpRequest();
 }
 return ajax;
}
///////////////////////////////////////////
function showHint()
{
 //获取接受返回信息层
 var msg = document.getElementById("txtHint");

 //获取表单对象和用户信息值
 var f = document.userlogin;
 var UserName = f.UserName.value;
 var UserAge = f.UserAge.value;

 //接收表单的URL地址
 var url = "/ajax.php";

 //需要POST的值,把每个变量都通过&来联接
 var postStr = "&user_name="+ UserName +"&user_age="+ UserAge;

 //实例化Ajax
 var ajax = InitAjax();
 
 //通过Post方式打开连接
 ajax.open("POST", url, true);

 //定义传输的文件HTTP头信息
 ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

 //发送POST数据
 ajax.send(postStr);

 //获取执行状态
 ajax.onreadystatechange = function() {
  //如果执行状态成功,那么就把返回信息写到指定的层里
  if (ajax.readyState == 4 && ajax.status == 200) {
   msg.innerHTML = ajax.responseText;
  }
 }
}

ajax.php

<?php
//require("class.php");
$UserName=$_post['user_name'];
$UserAge=$_post['user_age'];
//$cd=new controldata();
//$cd->update(&$UserName,&$UserAge,&$con);
$hint=$UserName.$UserAge;
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}

//output the response
echo $response;

?>

index.php

<link rel="stylesheet" type="text/css" href="css.css" />
<script src="ajax.js"></script>
<?php
echo "<form method=post name=userlogin id=userlogin>UserName:<select name=UserName id=UserName><option value=aaa>aaa</option><option value=bbb>bbb</option></select>UserAge:<input type=text name=UserAge id=UserAge><input type=submit value=提交 onclick='showHint()'></form>";
echo "<div id=txtHint style='width:200px; height:30px; background:#ccc;'></div>";
?>


问题是点击index.php的提交按钮,在txtHint的地方只显示一下就马上又刷新了,是怎么回事?
谁有更好的ajax异步思路,望不吝赐教!
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
onepointred
基础编程 21,889 成员 140,329 内容