使用AJAX提交HTML表单

时间:2011-09-30 03:55:16

标签: php javascript ajax forms

我有一张表格:

<form action="#" method="post" id="hubForm">
    <label class="labelText">Expiration Date:</label>
    <input class="datBox" type="text" id="cal" name="date">
    <div class="clr"></div>
    <div class="clr"></div>
    <label class="labelText">Hub Name</label>
    <input class="inputTxt" type="text" value="" name="name" />
    <div class="clr"></div>
    <label class="labelText">Description</label>
    <textarea class="textArea" name="desc"></textarea>
    <div class="clr"></div>
    <input class="submitButt" type="submit" value="" />
    <div class="clr"></div>
</form>

我有这个JavaScript:

$('#hubForm').submit(function() {
    $.ajax({
        url: "hubControl.php",
        type: "post",
        data: $(this).serialize()
    });
});

这个PHP代码:

//Add the hub, task, or project to the database
mysql_query("INSERT INTO ".$type."s(".$IDvar.", name, description, users, expDate)
VALUES(".$ID.", \"".$_POST['title']."\", \"".$_POST['desc']."\", ".$ID.", ".$_POST['date'].")");

但它拒绝向数据库添加任何内容。我已经重写了代码以使用$ _GET并测试了PHP,并且我已经验证它是否有效。

至于JavaScript,我也试过像

这样的东西
$.post("hubControl.php", $('#hubForm').serialize());

但似乎没有任何效果。有什么想法吗?

修改 表单HTML由其他人提供给我,所以我不知道它是否与AJAX / JavaScript 100%兼容,类似于method =“post”。你们都会比我想的更好。

3 个答案:

答案 0 :(得分:0)

由于您使用的是jQuery,因此应考虑使用ajaxForm plugin。它非常易于使用,您可以通过最少的设置将其放入项目中。

答案 1 :(得分:0)

如果它与$ _GET一起工作而不是$ _POST,听起来好像没有正确填充$ _POST数组。

我建议您在加载页面时通过查看$ _REQUEST或$ _POST数组来开始这项工作。某些HTML预标记中的print_r($ _ POST)非常有用。

如果你知道PHP甚至没有收到正确的数据,你可以专注于修复Ajax / jQuery。

答案 2 :(得分:0)

尝试使用大写字母:

$.ajax({
    url: "hubControl.php",
    type: "POST",
    data: $(this).serialize()
});
相关问题