Heim > Backend-Entwicklung > PHP-Tutorial > So entwickeln Sie eine einfache Fragebogenfunktion mit PHP

So entwickeln Sie eine einfache Fragebogenfunktion mit PHP

WBOY
Freigeben: 2023-09-21 14:06:01
Original
1327 Leute haben es durchsucht

So entwickeln Sie eine einfache Fragebogenfunktion mit PHP

Um mit PHP eine einfache Fragebogenfunktion zu entwickeln, sind spezifische Codebeispiele erforderlich.

Fragebogen ist eine gängige Methode zur Datenerfassung und wird häufig in der Marktforschung, der akademischen Forschung, der Überwachung der öffentlichen Meinung und anderen Bereichen eingesetzt. Im Internetzeitalter ist die Durchführung von Fragebogenbefragungen über Webseiten zum Mainstream geworden. Als häufig verwendete serverseitige Skriptsprache verfügt PHP über Funktionen wie die Verarbeitung von Formulardaten und Datenbankoperationen und eignet sich sehr gut für die Entwicklung einfacher Fragebogenfunktionen.

In diesem Artikel erfahren Sie, wie Sie mit PHP eine einfache Fragebogenfunktion entwickeln, einschließlich der Erstellung von Fragebögen, dem Sammeln von Benutzerantworten und der Anzeige von Umfrageergebnissen. Im Folgenden finden Sie spezifische Implementierungsschritte und Beispielcode.

Schritt 1: Datenbanktabelle erstellen
Zuerst müssen wir eine Datenbank erstellen, um fragebogenbezogene Daten zu speichern. Sie können MySQL oder andere relationale Datenbanken verwenden, um die folgenden zwei Tabellen zu erstellen:

  1. Umfragen: werden zum Speichern grundlegender Informationen zu Fragebögen verwendet, einschließlich Feldern wie Fragebogentitel, Beschreibung und Erstellungszeit.

    CREATE TABLE surveys (
     id INT AUTO_INCREMENT PRIMARY KEY,
     title VARCHAR(255) NOT NULL,
     description TEXT,
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    Nach dem Login kopieren
  2. Fragen: Wird zum Speichern von Fragen und Optionsinformationen für jeden Fragebogen verwendet, einschließlich Feldern wie Frageninhalt, Fragetyp und Optionsliste. Das Feld „survey_id“ wird verwendet, um eine Fremdschlüsselzuordnung mit der Umfragetabelle herzustellen.

    CREATE TABLE questions (
     id INT AUTO_INCREMENT PRIMARY KEY,
     survey_id INT NOT NULL,
     question TEXT,
     type ENUM('单选', '多选', '文本') NOT NULL,
     options TEXT,
     FOREIGN KEY (survey_id) REFERENCES surveys(id)
    );
    Nach dem Login kopieren

Schritt 2: Erstellen Sie eine Fragebogenseite
Als nächstes müssen wir eine Webseite erstellen, um den Fragebogen anzuzeigen. Auf dieser Seite können Benutzer Antworten auswählen und Fragebögen einreichen. Unten sehen Sie ein Beispiel einer einfachen Umfrageseite (survey.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷信息
$surveyId = $_GET['id']; // 从URL参数获取问卷ID
$surveyStmt = $pdo->prepare("SELECT * FROM surveys WHERE id = :id");
$surveyStmt->bindParam(':id', $surveyId);
$surveyStmt->execute();
$survey = $surveyStmt->fetch();

// 获取问题列表
$questionsStmt = $pdo->prepare("SELECT * FROM questions WHERE survey_id = :survey_id");
$questionsStmt->bindParam(':survey_id', $surveyId);
$questionsStmt->execute();
$questions = $questionsStmt->fetchAll();
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo $survey['title']; ?></title>
</head>
<body>
    <h1><?php echo $survey['title']; ?></h1>
    <p><?php echo $survey['description']; ?></p>

    <form action="submit.php" method="POST">
        <?php foreach ($questions as $question): ?>
            <h3><?php echo $question['question']; ?></h3>
            <?php if ($question['type'] == '单选' || $question['type'] == '多选'): ?>
                <?php $options = explode("
", $question['options']); ?>
                <?php foreach ($options as $option): ?>
                    <label>
                        <input type="<?php echo $question['type'] == '单选' ? 'radio' : 'checkbox'; ?>" name="answers[<?php echo $question['id']; ?>][]" value="<?php echo $option; ?>">
                        <?php echo $option; ?>
                    </label>
                <?php endforeach; ?>
            <?php else: ?>
                <textarea name="answers[<?php echo $question['id']; ?>]"></textarea>
            <?php endif; ?>
        <?php endforeach; ?>

        <input type="hidden" name="survey_id" value="<?php echo $surveyId; ?>">
        <input type="submit" value="提交">
    </form>
</body>
</html>
Nach dem Login kopieren

Schritt 3: Verarbeiten Sie die Fragebogendaten
Nachdem der Benutzer den Fragebogen übermittelt hat, müssen wir die Antwortdaten in der Datenbank speichern. Das Folgende ist ein Beispiel einer einfachen Datenverarbeitungsseite (submit.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷ID
$surveyId = $_POST['survey_id'];

// 处理问题答案
foreach ($_POST['answers'] as $questionId => $answer) {
    $answer = is_array($answer) ? implode(', ', $answer) : $answer;
    
    $answerStmt = $pdo->prepare("INSERT INTO answers (survey_id, question_id, answer) VALUES (?, ?, ?)");
    $answerStmt->execute([$surveyId, $questionId, $answer]);
}

// 跳转到结果页面
header("Location: result.php?id=$surveyId");
Nach dem Login kopieren

Schritt 4: Umfrageergebnisse anzeigen
Abschließend können wir eine Seite erstellen, um die Ergebnisse der Umfrage anzuzeigen. Unten finden Sie ein einfaches Beispiel für eine Ergebnisseite (result.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷ID
$surveyId = $_GET['id'];

// 获取问卷信息
$surveyStmt = $pdo->prepare("SELECT * FROM surveys WHERE id = :id");
$surveyStmt->bindParam(':id', $surveyId);
$surveyStmt->execute();
$survey = $surveyStmt->fetch();

// 获取问题列表和答案统计
$questionsStmt = $pdo->prepare("
    SELECT q.id, q.question, q.type, q.options, a.answer, COUNT(*) AS count
    FROM questions q
    LEFT JOIN answers a ON q.id = a.question_id
    WHERE q.survey_id = :survey_id
    GROUP BY q.id, a.answer
");
$questionsStmt->bindParam(':survey_id', $surveyId);
$questionsStmt->execute();
$questions = $questionsStmt->fetchAll();
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo $survey['title']; ?> - 结果</title>
</head>
<body>
    <h1><?php echo $survey['title']; ?> - 结果</h1>
    
    <?php foreach ($questions as $question): ?>
        <h3><?php echo $question['question']; ?></h3>
        <?php if ($question['type'] == '单选' || $question['type'] == '多选'): ?>
            <?php $options = explode("
", $question['options']); ?>
            <ul>
                <?php foreach ($options as $option): ?>
                    <li><?php echo $option; ?> - <?php echo $question['count']; ?></li>
                <?php endforeach; ?>
            </ul>
        <?php else: ?>
            <p><?php echo $question['answer']; ?></p>
        <?php endif; ?>
    <?php endforeach; ?>
</body>
</html>
Nach dem Login kopieren

Mit dem obigen Codebeispiel können wir schnell eine einfache Fragebogenfunktion entwickeln. Benutzer können Antworten auf der Fragebogenseite auswählen und absenden. Das System speichert die Antworten in der Datenbank und zeigt statistische Informationen auf der Ergebnisseite an.

Natürlich ist der obige Code nur ein einfaches Beispiel, und Probleme wie Sicherheit und Datenüberprüfung müssen möglicherweise auch in tatsächlichen Projekten berücksichtigt werden. Gleichzeitig kann der Code entsprechend den tatsächlichen Anforderungen optimiert und erweitert werden.

Ich hoffe, dieser Artikel hilft Ihnen, PHP zu verstehen und zu verwenden, um eine einfache Fragebogenfunktion zu entwickeln!

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie eine einfache Fragebogenfunktion mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage