2015-07-21 84 views
0
<form id="myform"><label for="name">Username:</label> 
<input type="text" id="username" name="username"> 
<button id= "btnsub" onclick="registerUser();">Register</button></form> 
<script> 
var url="http://localhost/rrrr/register.php?username="+ username; 
var username ;  
function registerUser() 
{ 
      document.getElementById("myform").action=url; 
      alert("btn click") ; 
      alert(username+''); 
} 
</script> 

我試過上面的代碼,按鈕單擊顯示警告框爲undefined是什麼問題?在HTML中提交表單數據併發送到服務器

+0

'username'的值是多少?你在哪裏定義了這個變量? –

+0

對不起,我定義了,但忘了在這裏提到 –

+0

'用戶名'的值? –

回答

0

如果您直接使用用戶名,它將被視爲未定義的JavaScript變量。獲取用戶名輸入元素的值。

你有這樣

var username = document.getElementById('username').value; 
var url="http://localhost/rrrr/register.php?username="+ username; 

function registerUser() 
{ 
      document.getElementById("myform").action=url; 
      alert("btn click") ; 
      alert(username+''); 
} 

使用提交表格,您可以像這樣

document.getElementById("myform").submit(); 

試試這個

<form><label for="name">Username:</label> 
<input type="text" id="username" name="username"> 
<script> 
var username = document.getElementById('username').value; 
var url="http://localhost/rrrr/register.php?username="+ username; 

function registerUser() 
{ 
      document.getElementById("myform").action=url; 
      alert("btn click") ; 
      alert(username+''); 
document.getElementById("myform").submit(); 
} 
</script> 
<button id= "btnsub" onclick="registerUser();">Register</button></form> 
+0

我以前試過但它沒有工作 –

+0

使用頭 – Raghavendra

+0

中的腳本你必須在使用它之前定義函數 – Raghavendra

0

您需要定義表單標籤ID來追加動作,並通過ID獲取「用戶名」以追加到url中

<form><label for="name">Username:</label> 
<input type="text" id="username" name="username"> 
<button id= "btnsub" onclick="registerUser();">Register</button></form> 
<script> 
var username= document.getElementById("username").value; 
var url="http://localhost/rrrr/register.php?username="+ username; 

function registerUser() 
{ 
      document.getElementById("myform").action=url; 
      alert("btn click") ; 
      alert(username+''); 
} 
</script> 
+0

是的,我做了同樣的事情 –

+0

使用這個$('#myform')。attr('action',url);代替這個document.getElementById(「myform」)。action = url; – NaveenG

+0

我發現上面thnx的解決方案的建議,但1問題是它仍然警報未定義,但後「提交表單」它重定向到服務器並保存值,但在客戶端它顯示服務器頁面爲什麼?如何避免服務器的頁面不顯示在客戶端 –

0

試試這個。獲取當前值username

代碼片段:

function registerUser() 
 
{ 
 
    var username = document.getElementById('username').value; 
 
    var url="http://localhost/rrrr/register.php?username="+ username; 
 
    //document.getElementById("myform").action=url; 
 
    alert("btn click") ; 
 
    alert(username); 
 
}
<form><label for="name">Username:</label> 
 
    <input type="text" id="username" name="username"/> 
 
<button id= "btnsub" onclick="registerUser();">Register</button></form>

因爲如果你定義usernameurl功能之外,這將是唯一持有加載時間值,並不能單擊按鈕時不會被改變。

+0

每當我使用'var username = document.getElementById('username').value;'這段代碼將刪除輸入字段的所有數據並保持在同一頁面上 –

+0

請發佈一個可以重現問題的小提琴。 –

+0

主要問題是它沒有重定向到服務器,現在它成功地將我的數據保存在服務器端,我使用這個document.getElementById(「myform」)。submit();仍然顯示未定義,但不是問題..因爲它保存了上面回覆建議的數據庫中的必填字段現在的問題是,「提交表單」重定向到服務器並保存值,但在客戶端顯示服務器頁面爲什麼?如何避免服務器的頁面不顯示在客戶端 –

相關問題