将数据插入数据库PHP而不加载新页面

时间:2016-12-11 14:48:25

标签: javascript php postgresql

我正在努力将数据插入我的数据库。问题是,如果我做了" form action =" adduser.php" method =" post"然后它工作。但是,它加载了一个新页面,我不希望这样。

$("td:contains('xx')").replaceWith($(this).className.text())



function addUser() {
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
        }
    };

    xmlhttp.open("POST", "adduser.php");
    var formData = new    FormData(document.getElementById("new_person"));
    xmlhttp.send(formData);
}




<form onsubmit="addUser()">
   Name: <input id = "new_name" type="text" name = "new_name">
    <button type="submit"> Submit </button>
</form>

2 个答案:

答案 0 :(得分:0)

更改按钮类型并添加事件以在点击此按钮时将数据发送到服务器:

<button type="button" onclick="addUser()">Submit</button>

答案 1 :(得分:0)

因为您提交表单而加载新页面。 从表单中删除onsubmit处理程序,并将按钮类型“submit”更改为“button”。

<form id="user" name="user" method="post" action="#">
    <button type="button" onclick="addUser()">Submit</button>
</form>

另外,为什么不使用jquery ajax,它更直观:http://api.jquery.com/jquery.ajax/

参见例子:

$.ajax({
    url: 'your_url',
    type: 'POST',
    async: true,
    data: $(your_form).serialize(),
    dataType: 'html',
    global: false, // Prevent the global handlers "ajaxStart" from being triggered...
    beforeSend: function() {

    },
    success: function(result, status) {

    },
    error: function(result, status, errno) {

    },
    complete: function(result, status) {

    }
}).done(function() {

});