2011-10-08 143 views
0

我遇到了jQuery(或者可能是php)的問題。我想要提交表單而不刷新頁面,所以我結束了以下代碼,但問題是它不起作用。下面的代碼:在不刷新頁面的情況下提交表單

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
       $("#submit").click(function() { 
       var name = $("#name").val(); 

       var dataString = 'name='+ name; 

       $.ajax({ 
       type: "POST", 
       url: "p.php", 
       data: dataString, 
       success: function(){ 
        alert("It works"); 

       } 
       }); 
       return false; 

      }); 
</script> 
</head> 

<body> 
<form id="myForm" name="myForm" action=""> 
    <p> 
    <label for="name"></label> 
    <input type="text" name="name" id="name" /> 
    </p> 
    <p> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
    </p> 
</form> 
<br /> 
</body> 
</html> 

處理頁面:

<?php include("../includes/includes.php"); ?> 
<?php $name = $_POST['name']; ?> 
<?php $sql = "INSERT INTO xyz 
     (id, value) VALUES 
      (1, '{$name}')"; 
     $result = $database->query($sql); 
?> 
+1

這是怎麼回事?有什麼問題?任何JS錯誤? –

+0

該頁面只是閒置。我無法弄清楚任何問題。 – shr3jn

+0

首先要看看它是否在沒有AJAX的情況下工作,然後添加它並檢查js日誌 –

回答

4

我不知道爲什麼它不工作,但你可以嘗試像這

<form id="myForm" name="myForm" action=""> 
    <p> 
    <label for="name"></label> 
    <input type="text" name="name" id="name" /> 
    </p> 
    <p> 
    <input type="button" name="submit" id="submit" value="Submit" />//change type to button 
    </p> 
</form> 

als o發生錯誤回調

$(function(){ 
$("#submit").click(function(e) { 
       e.preventDefault(); 
       var name = $("#name").val(); 
       $.ajax({ 
       type: "POST", 
       url: "p.php", 
       data: {name:name}, 
       success: function(){ 
        alert("It works"); 
       }, 
       error:function(e){alert("it failed");} 
       }); 

      }); 

}); 
+0

dreamwaver在這一行上顯示錯誤 錯誤:function(e){alert(「it failed」);} – shr3jn

+0

AH!我錯了,我錯過了一個',''在成功編輯了答案後,我也刪除了'return false;'並且使用了'e.preventDefault()'而不是 – Rafay

+0

,但是如果我刪除了那一行它就起作用:) – shr3jn

1

你需要修改你的表單標籤是這樣的:

<form id="myForm" name="myForm" action="" onsubmit="return false;"> 
+0

它不工作或者 – shr3jn

+0

最好在jQuery中使用'.preventDefault()',但它做同樣的事情。然而,這不是一個解決方案 - 它只會返回false而不會執行任何AJAX。 – Bojangles