当前位置: 首页 > 知识库问答 >
问题:

使用下拉列表将值从表单插入数据库

巫马刚洁
2023-03-14

我正在尝试将用户在表单中输入的值插入数据库。

我有两个下拉列表用于血液测试,然后是分类。例如,用户首先选择下拉列表1“甲状腺”(类别),然后下拉列表2显示“FT4、FT3 TSH”(血液检测)等,用户进行选择。

然后他们输入日期和值。

在我的insert中,我需要在我的数据库中插入用户id(在使用会话变量登录后建立)、血液测试id(从下拉列表2)、日期和值。

我不能得到我的SQL查询正确的插入一般,需要一些帮助请。下拉2(血液测试)是在一个单独的PHP文件,我不知道如何告诉SQL查询如何找到使用的值?

这个笨蛋。下面是php。这是表格所在的页面

  <?php
session_start();

include('dbConnect.php');

$queryStr=("SELECT * FROM category");
    $dbParams=array();
  // now send the query
  $results  = $db->prepare($queryStr);
  $results->execute($dbParams);

?>
<html>
<head>
<TITLE>Category and Test</TITLE>
<head>
<!-- Help for code to create dynamic drop downs -->
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
function getTest(val) {
    $.ajax({
    type: "POST",
    url: "get_test.php",
    data:'category_id='+val,
    success: function(data){
        $("#test-list").html(data);
    }
    });
}

function selectCategory(val) {
$("#search-box").val(val);
$("#suggesstion-box").hide();
}
</script>
</head>
<body>
<div class="frmDronpDown">
<div class="row">
<label>Category:</label><br/>
<select name="category" id="category-list" class="demoInputBox" onChange="getTest(this.value);">
<option value="">Select Category</option>
<?php
foreach($results as $category) {
?>
<option value="<?php echo $category["category_id"]; ?>"><?php echo $category["category_name"]; ?></option>
<?php
}
?>
</select>
</div>
<div class="row">
<form action="addBlood.php" method="post">
<label>Test:</label><br/>
<select name="test" id="test-list" class="demoInputBox">
<option value="">Select Test</option>
</select>
</div>
</div>

<label>Result:</label><input class="input" name="result" type="text"><br>
<label>Date:</label><input class="input" name="date" type="date"><br>
<input class="submit" name="submit" type="submit" value="Submit">
</form>

<?php

if(isset($_POST['submit'])){
    //$currentBloodTest=$test["bloodtest_id"];
    $currentUser=$_SESSION["currentUserID"];

    $value = $_POST['result'];
    $date = $_POST['date'];

        //$query = $db->prepare("INSERT INTO results (user_id, bloodtest_id,date,value)values ($currentUser,$currentBloodTest, $date , $value)");
        $dbParams = array();
        $query->execute($dbParams);
    echo "<br><br><span>Data Inserted successfully...!!</span>";


}

?>

</body>
</html>

下面是最有趣的。php的所有血液测试。

  <?php
include('dbConnect.php');


if(!empty($_POST["category_id"])) {
    $queryStr=("SELECT * FROM bloodtests WHERE category_id = '" . $_POST["category_id"] . "'");
    $dbParams=array();
  // now send the query
  $results  = $db->prepare($queryStr);
  $results->execute($dbParams);

?>
    <option value="">Select Test</option>
<?php
    foreach($results as $test) {
?>
    <option value="<?php echo $test["bloodtest_id"]; ?>"><?php echo $test["test_name"]; ?></option>
<?php
    }
}
?>

共有1个答案

鲁烨熠
2023-03-14

如果这是您遇到问题的地方,并且不确定如何继续:

//$query = $db->prepare("INSERT INTO results (user_id, bloodtest_id,date,value)
//                       VALUES ($currentUser,$currentBloodTest, $date , $value)");
$dbParams = array();
$query->execute($dbParams);

那么这可能会帮助你(你非常接近):

$currentUser      = $_SESSION["currentUserID"];
$currentBloodTest = $_POST['test']; // name of the 'select' element
$value            = $_POST['result'];
$date             = $_POST['date'];

$query = $db->prepare("INSERT INTO results (user_id, bloodtest_id, date, value)
                       VALUES (?, ?, ?, ?)");
$query->execute( array($currentUser, $currentBloodTest, $date, $value) );

另外,您在ajax查找中的这部分:

$queryStr=("SELECT * FROM bloodtests WHERE category_id = '" . $_POST["category_id"] . "'");
$dbParams=array();
// now send the query
$results  = $db->prepare($queryStr);
$results->execute($dbParams);

真的应该写为:

$queryStr = "SELECT * FROM bloodtests WHERE category_id = ?";
$results  = $db->prepare($queryStr);
$results->execute( array($_POST["category_id"]) );
 类似资料:
  • 我正在对php页面进行调整,希望最终用户能够从下拉列表中选择“姓名和电子邮件”。数据将来自mySQL数据库。 我已经设法让它部分工作,但是必须有东西做一个"验证",因为当页面上的所有数据都被选中,最终用户试图提交页面时,最终用户会收到电子邮件地址是无效,而事实上它是100%有效的。 与此相关,我更改的部分是,最终用户过去必须手动键入他们的电子邮件地址,现在他们可以从下拉列表中选择,但现在它告诉我们

  • 在这里,我尝试将所选下拉列表值插入数据库。但这里发生的是什么。 在这里,我有多个文本框和下拉框旁边。文本框的值正在正确插入数据库。 例如:假设有3个文本框和下拉列表。现在,我在文本框中输入一些数据,并在下拉列表中选择值,然后单击提交。 当我点击提交。将三个文本框值正确插入数据库。但是没有正确插入下拉列表值。但它插入最后一个下拉列表值3次。。。 如何解决这个问题? javascript和php代码:

  • 我在页面上有一个表单,用户可以在其中保存信息,还有一个下拉列表,可以从保存文件的目录中提取这些保存的文件。我想要的是当他们进入该页面时,当他们从下拉框中选择文件名时,它会将文件名放在输入框“CodeDescription”字段中,并将文件信息放在文本区域“Code”中,但我不确定如何解析该文件。下面是我当前的代码。 或者,相反地,我不介意在下拉菜单中选择正确的文件时,它只是在表单字段下面显示输出。

  • 问题内容: 我有一张表格,列出了来自特定网站的评论数量,如下所示: 我还有另一个表,列出了所有站点,例如从1到10 使用以下代码,我可以找出上个月缺少哪些站点条目: 生产: 我希望能够使用一些默认值(即“ 0”)将查询中列出的缺失网站插入到注释表中 问题是,我如何更新/插入表/值? 干杯, 背风处 问题答案:

  • 我在将下拉选项值(这是一个数字)拉入MySQL查询时遇到了一些问题。这里有一些代码供您使用: users.jsp 我得到的500个错误是: HTTP状态[500]-[内部服务器错误] 类型异常报告 说明服务器遇到意外情况,无法完成请求。 Exception org.apache.jasper.jasperException:在处理第[8]行的JSP页[/insert-user.JSP]时发生异常

  • 我有一个搜索表单,我必须按类别搜索,这是一个下拉列表。有2个表称为成员和类别。在类别表中有两个字段ID和名称(此名称字段存储类别的名称,如银行,医院...)。成员表中有一个名为类别的字段,该字段具有与类别表ID值相同的类别ID(类别字段在成员表中是一个外键)。 这是下拉列表的代码 在这段代码中,我有几个不明白的地方。