作者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