1

我是 jQuery 新手,我undefined在提交表单时不断获取数据。我在网上看了,试serialize()了,$.ajax函数,$.post函数等方法都无济于事。

我正在尝试在不刷新页面的情况下完成表单提交。如果我在表单提交后注释掉脚本以保留在页面上,则代码可以正常工作。

index2.php

<script>
function newlock() {
    $("#new-lock").load("new-lock.php");
}
</script>

<h3>Lock Settings</h3>
<div>
    <a href="#" onclick="newlock();">New Lock</a>
</div>

//code in between

<div id="tabs-1">
    <div id="new-lock"></div>
</div>  

insert_new_lock.php

require "connect.php";

$name = $_POST['name'];
echo $name;
$IP = $_POST['IP'];
echo $name;

$sql="INSERT INTO door_lock (lock_IP, lock_name)
VALUES
('$name','$IP')";
if (!mysql_query($sql,$conn))
{
die('Error: ' . mysql_error());
}

mysql_close($conn);
?>

新锁.php

<!doctype html>
<html lang="us">
<h2 align = "center"> Please enter information for the new lock </h2>
    <table border="0" align= "center">
        <form id="newlockform" action="insert_new_lock.php" method="post">
            <tr><td>Lock Name:</td> <td><input type="text" name="name"></td></tr>
    <tr><td>Lock IP:</td> <td><input type="text" name="IP"></td></tr>
    <tr><td><input type="reset" value="Clear"> <input type="submit" name="submitted" value="Submit"></td></tr>
        </form>
    </table>
</html>

<script>
    $("#newlockform").submit(function() {

        var name = $("#name").val();
        var IP = $("#IP").val();

        var dataString = 'name=' + name + '&IP=' +IP;

        $.post('insert_new_lock.php', dataString, function(data) {
            $("#tabs-1").html(data).fadeIn('100');
            $('#name,#IP').val(''); 
        }, 'text');
        return false;
});

</script>

任何帮助,将不胜感激!:D

4

1 回答 1

2

id您的表单字段上没有任何设置,所以

    var name = $("#name").val();

将返回 null,然后您将其作为空字符串提交。表单字段应该看起来像

<input type="text" name="whatever" id="name" />
                                  ^^^^^^^^^^^

让您的 JS 代码正常工作。

于 2012-12-17T19:13:23.170 回答