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);
?>

new-lock.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 に答える