【问题标题】:Select box value depending on other selected box option - MySQL, JS, HTML [closed]根据其他选定的框选项选择框值 - MySQL、JS、HTML [关闭]
【发布时间】:2018-10-24 10:51:33
【问题描述】:

我正在制作一个在线考试系统,就像你参加的考试一样 学校。您的学生帐户将被绑定到一个班级并且您的 老师会给你测试以完成成绩或练习。

此时,我正处于老师在一个选择框中选择他的课程或科目(数学、英语、历史等)的阶段。然后,一旦他们选择了他们的主题,他们就会看到一个新的选择选项框来选择一个领域(代数、三角学等)。

此时我的问题是,一旦他们选择了一个主题,例如数学,我希望新的选择框(如果可能)从我的数据库中提取数据并检查与该主题关联的字段。所以对于数学,他们可以选择代数或三角或其他。

我不是在寻找完整的代码,但对代码的 sn-ps 和对该代码的解释会有很长的路要走。

目前我非常熟悉 PHP、HTML 和 CSS。我目前正在学习如何在我的网站中使用 JS。

我想出的: 用于获得选择的脚本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    $("#subjectSelect").change(function() {
    $("#fieldSelect").load("getter.php?choice=" + $("#subjectSelect").val());
    });
</script>

Getter.php

<?php include "includes/dbc.inc.php"?>
<?php session_start();?>
<?php
$choice = mysql_real_escape_string($_GET['choice']);
$query = "SELECT * FROM fielda WHERE field_subj_id='$choice'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
    echo '<option value="'.$row['field_id'].'">' . $row['field_name']} . '</option>';
}

网站代码:

case "fieldquesadd":
            echo '
                <fieldset align="left">
                    <legend>Unos pitanja</legend>
                    <p>
                        <label for="subject">
                            <span>Predmet:  </span>
                        </label>
                        <select name="subject" required id="subjectSelect">
                            <option value=""></option>
                        ';
            $querySubjects = "SELECT * FROM subject";
            $resultSubjects = mysqli_query($conn, $querySubjects);
            while ($row_subjects = mysqli_fetch_array($resultSubjects)) {
                echo '<option value="' . $row_subjects['subj_id'] . '">' . $row_subjects['subj_name'] . '</option>';
            }

            echo '
                        </select>
                    </p>
                    <p id="fieldSet">
                        <label for="fieldSet">
                            <span>Gradivo: </span>
                        </label>
                        <select name="fieldSet" id="fieldSelect" required>

                        </select>
                    </p>
                </fieldset>
            ';
            break; //case "fieldquesadd"

【问题讨论】:

  • 请展示您为解决此问题所做的一些尝试,并详细描述您遇到的问题。
  • 问题是当用户选择一个选项时,我想我不知道如何从 MySQL 数据库中获取数据。我尝试在彼此内部使用 2 (PHP) while 循环来获取所有字段的值,然后根据用户使用 javascript 选择的内容输出数据。事实上,我在 JS 方面并没有那么熟练来处理这个问题以及我的个人项目,我打算学习,所以我想我可以在这里寻求建议。
  • 就像我说的,请展示你的尝试。如果我们不知道您在哪里遇到问题,我们将无法帮助您。这样做的例子有很多很多。一些基本的搜索至少应该为您提供一个起点。
  • 我试图简单地将第一选择发布到一个新网站,然后用户在那里选择该字段,但我现在正在寻找一种方法来在同一个网站上完成这一切。我不太确定从哪里开始。
  • 如果您甚至有点严肃,请重新开始。 PHP 的 mysql_ API 很久以前就被弃用了。

标签: javascript php html mysql


【解决方案1】:

我可以建议的是将新的选择框设为display:none; 直到选择了某些东西,并且您可以在选择时使用 js 使其显示

selector.style.display="block";

参考 How to display div after click the button in Javascript?

从选择框中获取值

参考

Get selected option text with JavaScript

使用 php $_POST['name'] 方法从该选择框中检索值

执行 SQL 查询以在新选择框中创建值,就像使用 sql 和 php 在表中显示内容一样。

或参考 Display Mysql table field values in Select box

【讨论】:

  • 我确实想过只是让用户选择一个课程,然后移动到一个新网站来选择一个字段,但我想在同一个页面上完成所有这些操作。
  • 我已经给出了你在问题中提到的所有问题的链接,我建议你通过这些链接我认为你的问题可以通过这些解决方案来解决
  • 我知道链接中的网站所说的,但我希望让 JS 连接到数据库,并且根据用户的选择,在之后向用户显示相应的信息他点击了按钮。
  • ajax 可以用于此
  • 请问我该怎么做?
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 2018-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
相关资源
最近更新 更多