从html表单插入mysql数据库,无需重定向

时间:2016-02-17 13:45:07

标签: php jquery html mysql ajax

我正在使用一个mysql数据库和一个我试图与之交流的网页。

这是我的情况:

我有listmat.php文件,它回显了表Material中的所有记录,但它确实有效。

现在我设法显示特定listmat.php内的div文件的输出,并使用以下代码刷新漏洞页面:

<script>
$(document).ready(function(){
  $("#matbutton").click(function(){
    $("#matins").load('listmat.php');
  });
});
</script>

其中matbutton是表单中提交按钮的ID,matinsdiv的ID,其中我显示listmat.php的输出

这是我的表格:

<form id="formmatins" method="post" action="listmat.php">
<p>Name:<input type="text" Name="Mat" id="Material"></p>
<center><input type="submit" value="Insert/Remove" id="matbutton"></center>`
</form>

我想要做的是使用matbuttonlistmat.php回显所有记录的表格中插入文本框的值。因此,每次我点击一条记录都会被插入,并且在div中会显示新表

问题是,如果我在方法帖子的表单中插入按钮,通过点击它重定向到输出更改页面,但如果我把它放出回声工作,但我不能明显地将文本框的值传递给listmat.php文件作为插入的参数,因为按钮对方法post不感兴趣。

我环顾四周,看起来解决方案是在jquery / ajax中使用一些铰接式结构,但我真的不知道如何修复。任何帮助都会非常感激

更新

<script>
  $(function () {

    $('#formmatins').on('submit', function (e) {

      e.preventDefault();

      $.ajax({
        type: 'post',
        url: 'listmat.php',
        data: $('#formmatins').serialize(),
        success: function () {
        $("#matins").load('listmat.php');
          alert('form was submitted');
        }
      });

    });

  });
</script>

再次切换页面

更新

<?php
$user = "**";
$pass = "**";
$db = "**";
$host = "localhost";

$con = mysqli_connect($host,$user,$pass,$db);
        if (mysqli_connect_errno())
       {
           echo "Failed to connect to MySQL: " . mysqli_connect_error();
       }
$m = $_POST['Mat']; //the text box in the form
$ins = $con->query("INSERT INTO mattemp (Material) VALUES ('$m')");
$query = $con->query("SELECT Material FROM mattemp");
while ($row = $query->fetch_assoc()) {
  echo $row['Material']."<br>";
    }
?>

它打印每次更新的表格,但仍然在新页面中......我做错了什么?

由MYSELF解决

感谢所有人都试图帮助我。在帖子上给我-1的解决方案不正确,这里是我的代码的解决方案,万一有人会遇到同样的问题

`<script>
  $(function () {
    $('#matbutton').on('click', function(event){
      event.preventDefault();
      $.ajax({
        type: 'post',
        url: 'listmat.php',
        data: $('#formmatins').serialize(),
        success: function (data) {
        $("#matins").load('listmat.php');}
      });

    });

  });
</script>`

1 个答案:

答案 0 :(得分:0)

您需要$.ajax

例如:

$.ajax({
    url: "your_url.php",
    type: "POST",
    data: $('#formmatins').serialize(),
    success: function(response){
        // Do something, or not...
    }
})