[英]Insert values into database from form with drop downs
我試圖將用戶以表格形式輸入的值插入我的數據庫。
我有2個下拉列表用於血液檢查,然后進行分類。 例如,用戶首先選擇下拉菜單1“甲狀腺”(類別),然后下拉菜單2顯示“ FT4,FT3 TSH”(血液測試)等,然后用戶進行選擇。
然后他們輸入日期和值。
在我的插入內容中,我需要將user_id(使用會話變量登錄后建立的bloodtest_id(從下拉列表2開始),日期,值插入到我的數據庫中。
一般而言,我無法正確執行SQL查詢,請尋求幫助。 下拉列表2(血液測試)位於單獨的php文件中,我不確定如何告訴SQL查詢如何找到要使用的值?
addBlood.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>
下面是獲取所有血液測試的getTest.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
}
}
?>
如果這是您遇到麻煩的地方,並且不確定如何繼續:
//$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"]) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.