1. 程式人生 > >添加學生信息並顯示

添加學生信息並顯示

lds 圖片輪播 方法 null 分享圖片 set方法 對象 mes 思路

思路分析

第一,創建表單

  <fieldset>
    <legend>學生信息添加</legend>
    <form id="mainForm">
      姓名:<input type="text" name="name"> <br>
      年齡:<input type="text" name="age"> <br>
      性別:<input type="text" name="gender"> <br>
      郵箱:<input type
="text" name="email"> <br> 電話:<input type="text" name="tel"> <br> <input type="button" name="btn" value="添加" id="btn"> <br> </form> </fieldset>

第二、給btn綁定點擊事件,獲取form表單數據

$(‘#btn‘).on(‘click‘,function(){
      // 獲取填寫得數據
      var fm = $(‘#mainForm‘)[0];
      var fd = new FormData(fm);
    })

第三、發送ajax,將表單數據發送給後端

  $(‘#btn‘).on(‘click‘,function(){
      // 獲取填寫得數據
      var fm = $(‘#mainForm‘)[0];
      var fd = new FormData(fm);
      $.ajax({
        url: ‘receive.php‘,
        data: fd,
        type: ‘post‘,
        dataType: ‘text‘,
        contentType: false,
        processData: false
, success: function(msg) {       console.log(msg); } }) })

第四、後端接收前端發送過來的數據,並且將發送過來的數據再返回給前端

<?php
// print_r($_POST);
$name = $_POST[‘name‘];
$age = $_POST[‘age‘];
$gender = $_POST[‘gender‘];
$email = $_POST[‘email‘];
$tel = $_POST[‘tel‘];

// 鏈接MySQL服務器
$conn = mysqli_connect(‘localhost‘,‘root‘,‘root‘);
// 選擇要操作的數據庫
mysqli_select_db($conn,‘study‘);
// 設置字符集
mysqli_query($conn,‘set names utf8‘);
// 拼接SQL語句,將數據添加到數據庫
$sql = "insert into hf(sno,sname,sage,sgender,semail,stel)
values(null,‘$name‘,$age,‘$gender‘,‘$email‘,$tel)";

// 執行SQL語句,返回布爾值,後端將數據保存到數據庫
$result_bool = mysqli_query($conn,$sql);
// 因為前端沒有接收學生的編號,所以使用新添加的屬性來獲取編號,現在我拼接一個新的SQL語句,用$tel獲取這個編號
$sql_no = "select sno from hf where stel=$tel";
// 執行SQL語句
$result_boolno = mysqli_query($conn,$sql_no); // die(print_r($result_boolno));
// 使用
mysqli_fetch_assoc()將結果對象轉化為一維數組,格式:[‘sno‘=>‘編號‘]

$no = mysqli_fetch_assoc($result_boolno);
// die(print_r($no));
$n = $no[‘sno‘];
// echo $n;

// 將數據返回到前端
if ($result_bool) {
//把數據拼接成一個新的數組
$tmp_arr = [ ‘no‘ => $n, ‘name‘ => $name, ‘age‘ => $age, ‘gender‘ => $gender, ‘email‘ => $email, ‘tel‘ => $tel ]; // 如果是true,返回數據到前端 echo json_encode($tmp_arr); } else { echo 2; } // 關閉MySQL鏈接 mysqli_close($conn); ?>

第五、前端接收返回來的數據,使用模板引擎將數據追加到tbody中

使用模板引擎追加

  <!-- 追加的模板標簽內容 -->
  <script type="text/template" id="tpl2">
    <tr>
        <td><%=no%></td>
        <td><%=name%></td>
        <td><%=age%></td>
        <td><%=gender%></td>
        <td><%=email%></td>
        <td><%=tel%></td>
    </tr>
  </script>
  <!-- ①a給btn綁定點擊事件 -->
  <script type="text/javascript">
    $(‘#btn‘).on(‘click‘,function(){
      // ②獲取填寫得數據,發送ajax請求,將數據發送到後端
      var fm = $(‘#mainForm‘)[0];
      var fd = new FormData(fm);
      $.ajax({
        url: ‘receive.php‘,
        data: fd,
        type: ‘post‘,
        dataType: ‘text‘,
        contentType: false,
        processData: false,
        success: function(msg) {
          // ③後端接收前端傳送過來的數據
          console.log(msg);
          // ⑤在前端追加新添加的數據
          if(msg==2) {
            location.reload();
            alert(‘添加失敗‘);
          } else {
            msg = JSON.parse(msg);
            console.log(msg);
            // 這時,按要求不刷新頁面,在右邊添加圖片輪播的內容
          var str = template(‘tpl2‘,msg);
          $(‘tbody‘).append(str);
        // 清空表單內容 fm.reset();
} } }) // location.reload(); })

技術分享圖片

測試了太多會,編號的自增長達到81.。。。

關鍵點總結

第一、ajax進行前後端交互

第二、模板引擎的用法

第三、清空form表單(刷新頁面):

  fm.reset();----Form標簽的DOM對象有一個reset方法,該方法可以清空表單內容
  localtion.reload()

第四、數據庫操作及SQL語句

添加學生信息並顯示