无法通过jquery ajax

时间:2018-07-25 06:55:32

标签: php jquery ajax

现在,我遇到了一个问题:我正在尝试借助jQuery & Ajax在数据库中插入记录。不幸的是,我试图提醒插入的值,但没有显示。我还检查了序列化功能,但无法做到这一点。

这是我的ajax代码

<script type="text/javascript">
   $(document).ready(function(){
      $("#add_new").click(function(){
         $("#add").slideToggle();
      });

      $("#submit").click(function(){
         var stud_no=$("#roll").val();             
         if(stud_no==''){
            $("#msg").html("Input Roll Number");
         } else {
         var datastr = $("#sampleform").serialize();
         alert(datastr);
         $.ajax({
            type:'POST',
            url:'add_it.php',
            data:datastr,
            success:function(response){
               $("#my_form")[0].reset();
               $("#msg").html("Student Successfully Added");
            },
            error: function (xhr, ajaxOptions, thrownError) {
            }
         });
         }

      });
   });
</script>

这是正文代码:

<body>
<a id="add_new">+add new item</a><br /><br />
<div id="msg"></div><br />
<div id="add">
<form id="sampleform">


<fieldset>
    <div class="form-group row">
      <label for="roll" class="col-sm-2 col-form-label">Roll Number</label>
      <div class="col-sm-6">
        <input type="text" name="roll" class="form-control" id="roll">
      </div>
    </div>
    <div class="form-group row">
      <label for="name" class="col-sm-2 col-form-label">Name</label>
      <div class="col-sm-6">
        <input type="text" name="name" class="form-control" id="name">
      </div>
    </div>
    <div class="form-group row">
      <label for="clas" class="col-sm-2 col-form-label">Class</label>
      <div class="col-sm-6">
        <input type="text" name="standard" class="form-control" id="standard">
      </div>
    </div>
    <div class="form-group row">
      <label for="mail" class="col-sm-2 col-form-label">Email</label>
      <div class="col-sm-6">
        <input type="email" name="mail" class="form-control" id="mail">
      </div>
    </div>
      <button type="submit" id="submit" class="btn btn-primary">Submit</button>
      <button type="reset" class="btn btn-default">Reset</button>
    </fieldset>

  </fieldset>
</form>
    </div>

这是我的add_it.php

<?php
include('connectdb.php');

$stud_no = trim($_POST['stud_no']);
$name = trim($_POST['name']);
$standard = trim($_POST['standard']);
$mail = trim($_POST['mail']);

$query = "insert into student (stud_no,name,standard,email) values ('$stud_no','$name','$standard','$mail')";
mysqli_query($con,$query) or die (mysqli_error());      
?>

1 个答案:

答案 0 :(得分:1)

您的HTML表单字段没有发送任何这些变量。您需要在表单字段中添加name =“ email”等。

例如,电子邮件字段必须如下所示:

<input type="email" name="email" class="form-control" id="mail">

id,class等未在POST中发送-因此无法在另一端接收到。

jQuery的serialize()函数也仅处理“名称”字段。

https://api.jquery.com/serialize/

摘要:

  

要使表单元素的值包含在序列化字符串中,该元素必须具有名称属性