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

onepointred 2010-06-23 10:39:55
三个页面: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异步思路,望不吝赐教!
...全文
125 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
naigoc 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yhxjc 的回复:]
我没有ff,我用的是ie,过不去,是什么原因啊?
[/Quote]
虽然你用的是.php页来实现网页功能,id和name后面好歹也要加‘’,select的option的value=''也要加引号的。。。。。。
onepointred 2010-06-23
  • 打赏
  • 举报
回复
我没有ff,我用的是ie,过不去,是什么原因啊?
star_l 2010-06-23
  • 打赏
  • 举报
回复
我也出现这个问题了,而且ajax我还不怎么会,我是下载的代码
学习了
naigoc 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yhxjc 的回复:]
麻烦再看一下ajax.js页面,传值好像传不过去。
[/Quote]
ff和ie都过不去还是其中一个过不去?
onepointred 2010-06-23
  • 打赏
  • 举报
回复
麻烦再看一下ajax.js页面,传值好像传不过去。
onepointred 2010-06-23
  • 打赏
  • 举报
回复
恩。谢谢1#和3#的,就是这个问题,已经解决了。
哪位还有更好的ajax异步思路。。。。
xuzuning 2010-06-23
  • 打赏
  • 举报
回复
index.php

<link rel="stylesheet" type="text/css" href="css.css" />
<script src="ajax.js"></script>
<?php
echo <<< HTML
<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=button value=提交 onclick='showHint()'>
</form>
HTML;
echo "<div id=txtHint style='width:200px; height:30px; background:#ccc;'></div>";
?>

使用 ajax 时,说是“提交”,其实并没有提交按钮
onepointred 2010-06-23
  • 打赏
  • 举报
回复
谢谢~!
哪位还有更好的ajax异步思路啊
amani11 2010-06-23
  • 打赏
  • 举报
回复
type=submit,表单提交了,,,就是说页面刷新了

<form……onsubmit="return showHint();"

showHint() 要返回false
onepointred 2010-06-23
  • 打赏
  • 举报
回复
OK了!谢谢各位!
c461439564 2010-06-23
  • 打赏
  • 举报
回复
靠!要做什么效果,帖上地址~~
onepointred 2010-06-23
  • 打赏
  • 举报
回复
好像不是这的问题啊,我已经改过并检查了。可还是不行。估计问题是不是处在ajax.js上面啊???

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧