作者idcomputer (顺)
看板Ajax
标题Re: [问题] 透过AJAX将资料存入资料库中?!
时间Sun Sep 28 12:26:29 2008
※ 引述《idcomputer (顺)》之铭言:
: 32;1m***********表单部份***************
: //建置一个表单,表单中不需要action、method之类的内容,全部由ajax来搞定了。
: <form name="user_info">
: 姓名:<input type="text" name="user_name" /><br />
: 年龄:<input type="text" name="user_age" /><br />
: 性别:<input type="text" name="user_sex" /><br />
: <input type="button" value="提交表单" onClick="saveUserInfo()">
: </form>
: //建置一个接受返回资讯的层:
: <div id="msg"></div>
:
:
: ********程式部份*******
: function saveUserInfo()
: {
: //获取接受返回资讯层
: var msg = document.getElementById("msg");
: //获取表单物件和使用者资讯值
: var f = document.user_info;
: var userName = f.user_name.value;
: var userAge = f.user_age.value;
: var userSex = f.user_sex.value;
: //接收表单的URL地址
: var url = "/save_info.php";
: //需要POST的值,把每个变数都透过&来联接
: var postStr = "user_name="+ userName +"&user_age="+ userAge +
: "&user_sex="+ userSex;
: //实例化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;
: }
: }
: }
: ******PHP部分********
:
: $user_name =$_POST['user_name'];
: $user_age =$_POST['user_age'];
: $user_sex =$_POST['user_sex'];
:
:
: mysql_select_db($database_local, $local);
: $sql = "INSERT INTO test
: ( user_name,user_age,user_sex)
: VALUES ('$user_name', '$user_age', '$user_sex')";
: $res = mysql_query($sql) or die(mysql_error());
: 想请问一下是哪个环节出了问题所以没办法将资料存入资料库呢?!感恩
如果增加下面这部份******************************************
var xmlHttp;
function createXHR(){
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (!xmlHttp) {
alert('您使用的浏览器不支援 XMLHTTP 物件');
return false;
}
}
******************************************************************
接着把此部份改成下列部分
: //实例化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;
: }
: }
: }
********************改成如下***************************
createXHR();
xmlHttp.open("POST", url);
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttp.send(postStr);
function handleStateChange()
{ if(xmlHttp.readyState == 4)
{ if(xmlHttp.status == 200)
{ msg.innerHTML = ajax.responseText;}
}
}
*************************************************
这样可行吗?!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.166.118
1F:→ TonyQ:可不可行应该是你执行看看就可以测试啊 -.-a 09/28 12:52
2F:→ TonyQ:是你send 後面似乎没有设定xmlHttp的onreadystate~ 09/28 12:52
4F:→ idcomputer:测试的网址~~刚刚试过了~~还是不能成功的将资料存入囧 09/28 13:03
6F:→ idcomputer:↑原始档案~~ 09/28 13:05
7F:→ idcomputer:书翻了又翻就是没有头绪ORZ 09/28 13:05
8F:推 appleboy46:这时候 我就要推 jQuery 了 XDDDD (误) 09/28 13:15
9F:→ a1234957:我都用懒人包jQuery 09/29 07:04