Re: [問題] 透過AJAX將資料存入資料庫中?!

看板Ajax作者 (順)時間17年前 (2008/09/28 12:26), 編輯推噓1(108)
留言9則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《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

09/28 12:52, , 1F
可不可行應該是你執行看看就可以測試啊 -.-a
09/28 12:52, 1F

09/28 12:52, , 2F
是你send 後面似乎沒有設定xmlHttp的onreadystate~
09/28 12:52, 2F

09/28 13:02, , 3F

09/28 13:03, , 4F
測試的網址~~剛剛試過了~~還是不能成功的將資料存入囧
09/28 13:03, 4F

09/28 13:04, , 5F

09/28 13:05, , 6F
↑原始檔案~~
09/28 13:05, 6F

09/28 13:05, , 7F
書翻了又翻就是沒有頭緒ORZ
09/28 13:05, 7F

09/28 13:15, , 8F
這時候 我就要推 jQuery 了 XDDDD (誤)
09/28 13:15, 8F

09/29 07:04, , 9F
我都用懶人包jQuery
09/29 07:04, 9F
文章代碼(AID): #18tmTsr1 (Ajax)
文章代碼(AID): #18tmTsr1 (Ajax)