2012-07-04 101 views
0

我創建了一個登錄表單,並嘗試使用jQuery來提交它,但它不幹活已搜查谷歌,但所有的方法都有點complicated.Here是我的代碼我無法提交表單服務器

<form id="form1"> 
<p>Username<p/> 
<input type="text" id="username"/> 
<p>Password</p> 
<input type="password" id="password"/> 
<p><input type="Submit" value="Log in" id="button"></p> 
</form> 

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

$("#button").click(function(){ 

var username=$("#username").val(); 
var password=$("#password").val(); 

$.get("signing.php",{'username':username,'password':password},function(response){ 
alert(response); 
}); 

}); 

</script> 

我的PHP文件是這樣的

<?php 

session_start(); 

$username=$_POST['username']; 
$password=$_POST['password']; 

include 'model/existusername.php';//This is used to connect to database and find the user 

if (existusername($username,$password)) 
{ 
$_SESSION['username']=$username; 
echo "loged in"; 
} 
else 
{ 
echo "not loged in"; 
} 

?> 

有什麼錯呢?如果我用一個選擇框(儘管不是在登錄電子有用),而不是輸入框中輸入代碼工作fine.How是可能?? 謝謝

+0

你檢查,在Firefox,Chrome或Safari庫巴錯誤控制檯? – reporter

+0

是的,它不會給出任何錯誤 – takis

+0

檢查您的開發人員工具的網絡選項卡。你得到的迴應是什麼? –

回答

0

編輯你的方法是這樣的:

$("#button").click(function(event){ 
    event.preventDefault(); 

    // ... 
}); 

或者,使用按鈕輸入,不會引起屈服。

<input type="button" value="Log in" id="button"> 

由於該按鈕是一個提交按鈕,因此該頁面在GET響應到達之前執行表單提交。防止提交發生,並且你的代碼應該工作。

+0

你說得對。兩種方法都有效。因此,如果我得到它,那麼表單將無處提交,並取消GET請求??因此,您不能一起提交表單和GET請求嗎? – takis

+0

如果未指定任何操作,表單將提交到當前頁面。由於您的GET請求是異步的,因此瀏覽器優先完成表單提交併取消了您的請求。提交導致導航返回到當前頁面的新副本,模糊了發生的事情。其次,您可以延遲表單提交,直到AJAX請求完成,但在您的情況下,這是不必要的。 –

0
<form id="form1" method="post" action="pathToYourPhpScript"> 
<p>Username<p/> 
<input type="text" id="username"/> 
<p>Password</p> 
<input type="password" id="password"/> 
<p><input type="Submit" value="Log in" id="button"></p> 
</form> 

你要記住選擇的形式開始標記的方法,並proberbly行動。

作爲標準,通過GET請求發送數據,並且您試圖從帖子中讀取數據。

我提供的例子是沒有AJAX,但是,如果你想使它與ajax一起工作,你必須改變你的javascript做一個POST請求。

1

您正在使用$ .get()發送帶有jQuery的get請求。

您的php文件正在檢查$ _POST vars。

+0

我將$ _POST更改爲$ _GET,但仍然無法正常工作。還有其他建議嗎? – takis

1

在窗體上添加一個 「行動=」,以及類似的東西后:

$('#button').click(function() { 
    $('#form').submit(); 
}); 

沒有?

而你正在使用GET並嘗試恢復POST ..我認爲這是不正常的。

0

這是非常簡單

$.ajax({ 
         type: "POST", 
         cache:false, 
         async:true, 
         url: "index.php", 
         data: $('#id').serialize(),       
         success: function(data){ 
          alert(data); 
         } 
      }); 

這裏ID是你的形式id.try這很容易,你可以做

相關問題