Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fungsi import dan eksport kertas ujian dalam menjawab dalam talian

Bagaimana untuk melaksanakan fungsi import dan eksport kertas ujian dalam menjawab dalam talian

WBOY
WBOYasal
2023-09-24 15:27:161992semak imbas

Bagaimana untuk melaksanakan fungsi import dan eksport kertas ujian dalam menjawab dalam talian

Cara melaksanakan fungsi import dan eksport kertas ujian dalam menjawab dalam talian memerlukan contoh kod khusus

Dengan perkembangan teknologi, jawapan dalam talian sistem Ia semakin digemari oleh pelajar dan guru serta memainkan peranan penting dalam pengajaran. Sistem menjawab soalan dalam talian bukan sahaja dapat meningkatkan semangat pembelajaran pelajar, tetapi juga membolehkan guru membuat pembetulan yang cekap. Walau bagaimanapun, sistem jawapan dalam talian yang baik harus mempunyai fungsi mengimport dan mengeksport kertas ujian untuk meningkatkan fleksibiliti dan kemudahan sistem. Artikel ini akan memperkenalkan cara melaksanakan fungsi import dan eksport kertas ujian dalam sistem jawapan dalam talian dan menyediakan contoh kod khusus.

1. Pelaksanaan fungsi import kertas ujian

Sebelum melaksanakan fungsi import kertas ujian, terlebih dahulu kita perlu menjelaskan struktur data kertas ujian. Kertas ujian biasanya mengandungi tajuk kertas ujian, senarai soalan dan senarai jawapan. Senarai soalan mengandungi berbilang soalan, dan setiap soalan mempunyai jenis soalan, kandungan soalan dan senarai pilihan. Jawapan bagi setiap soalan disertakan dalam senarai jawapan. Dalam pangkalan data, tiga jadual boleh digunakan untuk mewakili struktur data kertas ujian: jadual kertas ujian, jadual soalan dan jadual jawapan.

  1. Buat jadual kertas ujian

Buat jadual bernama kertas untuk menyimpan maklumat kertas ujian. Struktur jadual adalah seperti berikut:

CIPTA kertas JADUAL (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL
); #🎜🎜 #

Buat jadual soalan
  1. Buat jadual bernama soalan untuk menyimpan maklumat soalan. Struktur jadual adalah seperti berikut:

CIPTA soalan JADUAL (

id INT PRIMARY KEY AUTO_INCREMENT,

paper_id INT NOT NULL,
jenis soalan ENUM(' , 'Soalan aneka pilihan' Pilih topik', 'Isi tempat kosong') BUKAN NULL,
kandungan TEKS BUKAN NULL,
pilihan TEKS,
KUNCI ASING (paper_id) RUJUKAN kertas(id )
);#🎜 🎜#

Buat jadual jawapan

  1. Buat jadual bernama jawapan untuk menyimpan maklumat jawapan soalan. Struktur jadual adalah seperti berikut:
BUAT jawapan JADUAL (

id INT PRIMARY KEY AUTO_INCREMENT,

question_id INT NOT NULL,

answer TEXT🎜# TEXT🎜 # KUNCI ASING (id_soalan) RUJUKAN soalan(id)
);

Di atas adalah struktur jadual pangkalan data Seterusnya, kita perlu melaksanakan fungsi mengimport kertas ujian.

Buat halaman untuk mengimport kertas ujian

    Pertama, kita perlu membuat halaman untuk mengimport kertas ujian. Halaman harus mengandungi butang muat naik untuk memilih fail dan butang hantar.
  1. <form action="import.php" method="POST" enctype="multipart/form-data">
      <input type="file" name="file" accept=".json">
      <button type="submit">导入试卷</button>
    </form>
Kendalikan permintaan untuk mengimport kertas ujian

    Dalam halaman untuk mengimport kertas ujian, kami perlu memproses permintaan untuk mengimport kertas ujian dan menghuraikan fail yang dimuat naik. Di bahagian pelayan, kita boleh menggunakan fungsi json_decode PHP untuk menghuraikan fail JSON dan menggunakan pernyataan SQL untuk menyimpan data kertas ujian dalam pangkalan data.
  1. $file = $_FILES['file']['tmp_name'];
    $json = file_get_contents($file);
    $data = json_decode($json, true);
    
    $title = $data['title'];
    $questions = $data['questions'];
    
    // 存储试卷信息
    $sql = "INSERT INTO paper (title) VALUES ('$title')";
    $result = mysqli_query($conn, $sql);
    $paper_id = mysqli_insert_id($conn);
    
    // 存储题目信息
    foreach ($questions as $question) {
      $type = $question['type'];
      $content = $question['content'];
      $options = $question['options'];
    
      $sql = "INSERT INTO question (paper_id, type, content, options) VALUES ('$paper_id', '$type', '$content', '$options')";
      $result = mysqli_query($conn, $sql);
      $question_id = mysqli_insert_id($conn);
    
      // 存储答案信息
      $answer = $question['answer'];
      $sql = "INSERT INTO answer (question_id, answer) VALUES ('$question_id', '$answer')";
      $result = mysqli_query($conn, $sql);
    }
  2. 2. Pelaksanaan fungsi eksport kertas ujian

Pelaksanaan fungsi eksport kertas ujian adalah agak mudah. ​​Anda hanya perlu mengeluarkan data kertas ujian daripada pangkalan data dan eksportnya dalam format JSON.

Buat halaman untuk mengeksport kertas ujian

    Pertama, kita perlu membuat halaman untuk mengeksport kertas ujian dan menambah halaman untuk mencetuskan butang eksport.
  1. <button onclick="exportPaper()">导出试卷</button>
    
    <script>
      function exportPaper() {
        window.location.href = 'export.php';
      }
    </script>
Proses permintaan untuk mengeksport kertas ujian

    Dalam halaman untuk mengeksport kertas ujian, kami perlu memproses permintaan untuk mengeksport kertas ujian dan dapatkannya daripada pangkalan data Data kertas ujian. Kemudian, data kertas ujian dikeluarkan kepada pengguna dalam format JSON.
  1. header('Content-Type: application/json');
    header('Content-Disposition: attachment; filename="paper.json"');
    
    $data = array();
    
    // 获取试卷信息
    $sql = "SELECT * FROM paper";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($result);
    
    $data['title'] = $row['title'];
    
    // 获取题目信息
    $sql = "SELECT * FROM question WHERE paper_id = " . $row['id'];
    $result = mysqli_query($conn, $sql);
    $questions = array();
    
    while ($row = mysqli_fetch_assoc($result)) {
      $question = array(
        'type' => $row['type'],
        'content' => $row['content'],
        'options' => $row['options'],
        'answer' => $row['answer']
      );
    
      $questions[] = $question;
    }
    
    $data['questions'] = $questions;
    
    echo json_encode($data);
  2. Melalui contoh kod di atas, kita boleh melaksanakan fungsi import dan eksport kertas ujian dalam sistem jawapan dalam talian. Pengguna boleh mengimport kertas ujian ke dalam sistem dalam format JSON dan menjawab soalan dalam sistem mereka juga boleh mengeksport kertas ujian daripada sistem untuk memudahkan sandaran, perkongsian dan pencetakan kertas ujian.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi import dan eksport kertas ujian dalam menjawab dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn