我目前正在創建一個調查,其中答案被輸入資料庫。
我有 2 個主表:
- 問題,有 2 列:questionID 和 questionBody
- 答案,有 3 列:answerID、questionID(我希望這與表問題中的列相關聯)和 answerBody。
在我計劃創建的 HTML 頁面上,將有多個帶有多個文本框的問題來填寫與每個問題相關的內容。當該人提交表單時,是否有可能將答案插入到表格答案中,其中 questionID 基于填寫的欄位?
例如,如果我有 questionBody 作為“這個問題在問什么?” 并且在表格問題中的 questionID 為 1,當我提交表格時,我希望表格答案中也有 questionID 1。
目前這是我的代碼:
//Check if error variables have any values assigned
if (empty($answerError))
{
//Prepare database insert
$sql = "INSERT INTO answers (questionID, answerBody) VALUES (?,?)";
//Check if the statement has the connect and sql variables
if ($statement = mysqli_prepare($connect, $sql))
{
//Add variables to the statement
mysqli_stmt_bind_param($statement, "ss", $paramQuestion, $paramAnswer);
//Set the parameter to the answer
$paramQuestion = getQuestionName($connect);
$paramAnswer = $answer;
//Execute statement with entered variable
if (mysqli_stmt_execute($statement))
{
//Redirect user to success page
header("location: thankyou.php");
}
else
{
echo "Something went wrong. Please try again later.";
}
//Close statement
mysqli_stmt_close($statement);
}
}
對于函式 getQuestionName():
function getQuestionName($connect)
{
$query = "SELECT * FROM questions";
$result = mysqli_query($connect, $query);
if ($result)
{
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$questionID = $row['questionID'];
return $questionID;
}
}
}
我用來將表單輸出到 HTML 頁面的代碼是:
function getQuestions($connect)
{
$query = "SELECT * FROM questions";
$result = mysqli_query($connect, $query);
if ($result)
{
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$body = $row['questionBody'];
echo '<div class="entry">
<div class="questionTitle"><h3>' . $body . '</h3>
<form action="survey.php" method="POST">
<input type="text" name="answer" size="50" />
<input type="submit" value="Submit" name="submit" />
</form>
</div>
</div>';
}
}
對此的任何幫助將不勝感激:)
uj5u.com熱心網友回復:
根據您的問題,我建議您使用具有隱藏屬性的輸入。
像這樣的東西
<input type='text' name='question-id' value="<?php echo $questionId ;?>" hidden>
用戶看不到它從您提供的任何內容中填充的輸入。
編輯你的代碼,你應該做這樣的事情。
function getQuestions($connect)
{
$query = "SELECT * FROM questions";
$result = mysqli_query($connect, $query);
if ($result)
{
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$body = $row['questionBody'];
$questionId = $row['questionId'];
echo '<div class="entry">
<div class="questionTitle"><h3>' . $body . '</h3>
<form action="survey.php" method="POST">
<input type="text" name="answer" size="50" />
<input type="number"name="question-id" value="'.$questionId.'" hidden>
<input type="submit" value="Submit" name="submit" />
</form>
</div>
</div>';
}
}
uj5u.com熱心網友回復:
是的,這是完全可能的。只需將問題ID作為隱藏欄位放在表單中,提交表單時將與答案資料一起提交。然后您可以$_POST
像答案一樣從資料中檢索它,并在您的 SQL 查詢中使用它。
例如:
HTML 表單:
<form action="survey.php" method="POST">
<input type="hidden" name="questionID" value="<?php echo $row["questionID"]; ?>" />
<input type="text" name="answer" size="50" />
<input type="submit" value="Submit" name="submit" />
</form>
調查.php:
$paramQuestion = $_POST["questionID"];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497726.html