2013-09-30 17 views
0

我有這樣的一段JavaScript代碼:保存表單值到另一個PHP頁面

<script type="text/javascript" src="sha512.js"></script> 
<script type="text/javascript" src="forms.js"></script> 

<script> 
      function loadXMLDoc(form, password) 
      { 
      var xmlhttp; 
      if (window.XMLHttpRequest) 
       {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
       } 
      else 
       {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
      xmlhttp.onreadystatechange=function() 
       { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
        formhash(form, password); 
       } 
       } 
      xmlhttp.open("POST","post.php",true); 
      xmlhttp.send(); 
      } 
</script> 

和一些HTML:

<div id="myDiv"> 
    <form action="register.php" method="post"> 
     Email: <input type="text" name="email" /><br /> 
     Username: <input type="text" name="username" /><br /> 
     Password: <input type="password" name="p" id="password" /><br /> 
     <input type="button" value="Register" onclick="loadXMLDoc(this.form, this.form.password);" /> 
    </form> 
</div> 

上面的Javascript代碼必須與PHP和之後運行一些Ajax的工作那就運行一個加密函數(formhash)。 當Ajax運行時,它會讀取一個名爲「post.php」的頁面,post.php的工作是在密碼被加密之前檢查是否有任何字段爲空。

我的問題是,post.php不記得有任何值從我上面發佈的註冊表格。 post.php必須記住用戶在字段中輸入的內容,以查看它們是否爲空。任何想法,我可以如何將這些值傳遞給post.php文件?

+0

'xmlhttp.send(string);'如果您使用'POST'方法,您應該手動生成查詢字符串作爲字符串在'send()'函數中傳遞。 '例如 var post_query_string =「[email protected]&name=abc&p=myp」; xmlhttp.send(post_query_string);' –

回答

1

你可以試試:

parameters= 'username='+ form.elements[0].value +'&' +'password=' +form.elements[1].value ; 
    xmlhttp.open("POST","post.php",true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send(parameters); 
+0

這看起來很簡單,它會將參數傳遞給post.php文件嗎?我將不得不稍後再嘗試這個 – owwyess

+0

您將爲堆棧警察提供w3schools資源 - 無論這個具體信息是否準確。 – Stefan

+0

這工作得很好,我只需要將密碼參數更改爲2,因爲表單以電子郵件(0),用戶名(1)和密碼(2)開頭。 – owwyess

1

看起來你不提交任何數據到服務器在下面的一行:

  xmlhttp.open("POST","post.php",true); 

你可以試試下面的代碼來發送數據:

xmlhttp.open("POST","post.php",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("[email protected]&username=Ford&p=pass123"); 
+0

啊真棒,什麼是電子郵件的事情? – owwyess

+0

我剛剛通過了所有表單元素。我認爲你只需要密碼。 – Rajesh

相關問題