2013-07-26 85 views
0

我是ajax和jQuery的新手。我正在尝试使用ajax和jQuery获取html表单值。我得到的价值,但我不能将该值传递给另一个PHP文件。我不知道我缺少什么..有人可以帮我请..使用ajax,jquery,php发送表单值

这里是我的form.php的文件代码:

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Form</title> 

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
     $(document).ready(function(){ 
      $('#submit').click(function(){ 
       var srt = $("#input").serialize(); 
       // alert is working perfect 
       alert(srt); 
       $.ajax({ 
        type: 'POST', 
        url: 'database.php', 
        data: srt, 
        success: function(d) { 
         $("#someElement").html(d); 
        } 
      }); 
     }); 
     }); 
    </script> 
</head> 
<body> 
<form id="input" method="post" action=""> 
    First Name:<input type="text" name="firstName" id="firstName"> 
    Last Name: <input type="text" name="lastName" id="lastName"> 
    <input type="submit" id="submit" value="submit " name="submit"> 
</form> 
<div id="someElement"></div> 
</body> 
</html> 

这里是我的database.php中文件的代码:

<?php 
if(isset($_POST['submit'])) 
{ 
    $firstName = $_POST['firstName']; 

    $lastName = $_POST['lastName']; 

    echo $firstName; 

    echo $lastName; 
} 

回答

2

您需要添加:

return false; 

到底Ø f你的click处理程序。否则,将发生默认的提交按钮操作,并刷新页面。

而且,删除行:

if (isset($_POST['submit'])) 

提交当你在窗体上调用.serialize()按钮不包括在内,当提交按钮进行正常的浏览器提交(如果有他们只派多个提交按钮,这允许服务器知道使用了哪个按钮)。

0

你需要做以下

$('#submit').click(function(){ 
       var srt = $("#input").serialize(); 
       // alert is working perfect 
       alert(srt); 
       $.ajax({ 
        type: 'POST', 
        url: 'database.php', 
        data: srt, 
        success: function(d) { 
         $("#someElement").html(d); 
        } 
      return false; 
}); 

表默认情况下,如果你不使用返回false会火。

0

如下

$("#input").submit(function(event) { 
    var srt = $("#input").serialize(); 
    // alert is working perfect 
    alert(srt); 
    $.ajax({ 
     type: 'POST', 
     url: 'database.php', 
     data: srt, 
     success: function(d) { 
      $("#someElement").html(d); 
     } 
    }) 
    return false; 
}); 
+0

这与S Russell的回答不一样吗? – Barmar

+0

是的,我同意了,但是我在他之前发布了:)并且我使用了提交事件。 –

0

您需要防止click事件的默认操作或表格将使用默认形式的行动和你的Ajax调用将永远不会是完整的处理就可以使用。

$("#input").submit(function(event) { 
    event.preventDefault(); // prevent default action 
    var srt = $("#input").serialize(); 
    // alert is working perfect 
    alert(srt); 
    $.ajax({ 
     type: 'POST', 
     url: 'database.php', 
     data: srt, 
     success: function(d) { 
      $("#someElement").html(d); 
     } 
    });  
});