使用AJAX + PHP插入MySQL数据库

时间:2015-01-22 15:51:53

标签: php mysql ajax

我正在尝试将数据从表单插入到数据库而不刷新页面,我的HTML页面如下所示:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>

    <body>
        <form name="form1" method="post" action="">Enter Name
            <input type="text" name="t1" id="t1">
            </td>
            <br>Enter City
            <input type="text" name="t2" id="t2">
            </td>
            <br>
            <input type="button" name="button1" value="Insert to DB" onClick="aa()">
        </form>
        <div id="d1"></div>
        <script type="text/javascript">
            function aa() {
                var xmlhttp = new XMLhttpRequest();
                xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city" + document.getElementById("t2").value, false);
                xmlhttp.send(null);

                document.getElementById("d1").innerHTML = xmlhttp.responseText;;
            }
        </script>
    </body>
</html>

和我的insert.php看起来像:

<?php
    $name = $_GET["name"];
    $city = $_GET["city"];

    mysql_connect("localhost","root", "");
    mysql_select_db("dwh");
    mysql_query("insert into table1 values('$name','$city')");
    echo "Record inserted";
?>

在我看来,这应该将PHP中的所有数据发送到“get”,php应该只接受并插入它。不知何故,它不是。也许我想念一下,你能帮我找个问题吗?

浏览器控制台说:

(index):16 Uncaught ReferenceError: XMLhttpRequest is not defined(index):16 aa(index):9 onclick

非常感谢你。

P.S。我理解我的MYSQL连接存在安全风险,这是为了测试如何使其工作而创建的。

4 个答案:

答案 0 :(得分:1)

  

(index):16 Uncaught ReferenceError:未定义XMLhttpRequest(索引):16 aa(index):9 onclick

JavaScript区分大小写。函数是XMLHttpRequest(大写字母H)。

答案 1 :(得分:0)

你在&#34; city&#34;这个词后面错过了一个等号。在&city中,并且在构建查询字符串时是必需的:

xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city" + document.getElementById("t2").value, false);

应该是

xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city=" + document.getElementById("t2").value, false);

答案 2 :(得分:0)

尝试包括表的列名,例如:

insert into table1 (column1, column2) values('$name','$city')

此外,使用另一个变量来检查您的查询是否成功执行:

$result = mysql_query("insert into table1 (column1, column2) values('$name','$city')");
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

答案 3 :(得分:0)

您需要解决两件事:

  1. var xmlhttp = new XMLhttpRequest();行中,var xmlhttp = new XMLHttpRequest();应为H

  2. 您需要将id提供给<input>,因为您要按getElementById()附加值。目前,您已通过的id没有元素。