Comment implémenter les fonctions d'importation et d'exportation des épreuves dans la réponse en ligne

WBOY
Libérer: 2023-09-24 15:28:02
original
1963 Les gens l'ont consulté

Comment implémenter les fonctions dimportation et dexportation des épreuves dans la réponse en ligne

Comment implémenter la fonction d'importation et d'exportation de copies de test dans la réponse en ligne nécessite des exemples de code spécifiques

Avec le développement de la technologie, les systèmes de réponse en ligne sont de plus en plus favorisés par les étudiants et les enseignants et jouent un rôle important dans l'enseignement. Le système de questions-réponses en ligne peut non seulement améliorer l'enthousiasme d'apprentissage des élèves, mais également permettre aux enseignants d'effectuer des corrections efficaces. Cependant, un bon système de réponse en ligne devrait avoir pour fonction d'importer et d'exporter des épreuves pour améliorer la flexibilité et la commodité du système. Cet article présentera comment implémenter les fonctions d'importation et d'exportation des épreuves dans le système de réponse en ligne et fournira des exemples de code spécifiques.

1. Implémentation de la fonction d'importation de papier test

Avant d'implémenter la fonction d'importation de papier test, nous devons d'abord clarifier la structure des données du papier test. Une épreuve de test comprend généralement un titre d’épreuve, une liste de questions et une liste de réponses. La liste de questions contient plusieurs questions et chaque question a un type de question, un contenu de question et une liste d'options. Les réponses à chaque question sont incluses dans la liste de réponses. Dans la base de données, trois tableaux peuvent être utilisés pour représenter la structure des données de l'épreuve : la table des épreuves, la table des questions et la table des réponses.

  1. Créer une table de papier test

Créez une table nommée papier pour stocker les informations sur le papier test. La structure de la table est la suivante :

CREATE TABLE paper (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL
);

  1. Create question table

Créez une table nommée question pour stocker les informations sur la question. La structure du tableau est la suivante :

question CREATE TABLE (
id INT PRIMARY KEY AUTO_INCREMENT,
paper_id INT NOT NULL,
tapez ENUM('single Choice Question', 'Multiple Choice Question', 'Remplissez le vide') NOT NULL,
content TEXT NOT NULL,
options TEXT,
FOREIGN KEY (paper_id) REFERENCES paper(id)
);

  1. Créer un tableau de réponses

Créer un tableau nommé réponse pour stocker les informations de réponse de la question. La structure de la table est la suivante :

Réponse CREATE TABLE (
id INT PRIMARY KEY AUTO_INCREMENT,
question_id INT NOT NULL,
réponse TEXT NOT NULL,
FOREIGN KEY (question_id) REFERENCES question(id)
);

Ce qui précède est le tableau de la structure de la base de données, nous devons ensuite implémenter la fonction d'importation des épreuves.

  1. Créer une page pour importer des épreuves

Tout d'abord, nous devons créer une page pour importer des épreuves. La page doit contenir un bouton de téléchargement pour sélectionner un fichier et un bouton de soumission.

<form action="import.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file" accept=".json">
  <button type="submit">导入试卷</button>
</form>
Copier après la connexion
  1. Gérer la demande d'importation du papier test

Dans la page d'importation du papier test, nous devons traiter la demande d'importation du papier test et analyser le fichier téléchargé. Côté serveur, nous pouvons utiliser la fonction json_decode de PHP pour analyser le fichier JSON et utiliser des instructions SQL pour stocker les données du test dans la base de données.

$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);
}
Copier après la connexion

2. Implémentation de la fonction d'exportation du papier test

La mise en œuvre de la fonction d'exportation du papier test est relativement simple. Il vous suffit de retirer les données du papier test de la base de données et de les exporter au format JSON.

  1. Créer une page pour exporter les épreuves de test

Tout d'abord, nous devons créer une page pour exporter les épreuves de test et ajouter un bouton pour déclencher l'exportation.

<button onclick="exportPaper()">导出试卷</button>

<script>
  function exportPaper() {
    window.location.href = 'export.php';
  }
</script>
Copier après la connexion
  1. Traitez la demande d'exportation du papier test

Dans la page d'exportation du papier test, nous devons traiter la demande d'exportation du papier test et récupérer les données du papier test de la base de données. Ensuite, les données du papier test sont transmises à l'utilisateur au format JSON.

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);
Copier après la connexion

Grâce à l'exemple de code ci-dessus, nous pouvons implémenter les fonctions d'importation et d'exportation des épreuves dans le système de réponse en ligne. Les utilisateurs peuvent importer des épreuves dans le système au format JSON et répondre aux questions dans le système ; ils peuvent également exporter des épreuves depuis le système pour faciliter la sauvegarde, le partage et l'impression des épreuves.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!