我有一个DB,在这个DB中有一个叫做question的表,然后是另一个叫做q_options的表。我的代码带来了问题,然后提出了每个问题的选项。选项始终是无线电BTN,我将questionId分配给无线电BTN的名称。在POST上检索名称作为变量
<input type = "radio" name = "<?php echo $optionsQID; ?>" value = "<?php echo $optionsID; ?>">
那部分权利是我无法得到我的数据库。当我print_r我的POST时,我可以看到已分配号码的字段已发布,但我无法在提交后从$qAnswer = $_POST[$optionsQID];
中检索它。
我试过用引号和没有引号,我也尝试添加和标识符的无线电BTN名称与变量,但我仍然没有得到该字段的值。
我也感动了整个
if (isset($_POST["answerQuestion"])){
$question = $_POST["questionID"];
$qAnswer = $_POST[$optionsQID];
$sql = "INSERT INTO answers (id, q_id, answer)
VALUES (NULL, '$question', '$qAnswer')";
echo "Thanks for your input";
if(!mysqli_query($link, $sql)) {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
第二while循环中,这将$ qAnswer的正确值,但随后也创造了每一个问题的记录。
这是我的代码
<?php
if (isset($_POST["answerQuestion"])){
$question = $_POST["questionID"];
$qAnswer = $_POST[$optionsQID];
$sql = "INSERT INTO answers (id, q_id, answer)
VALUES (NULL, '$question', '$qAnswer')";
echo "Thanks for your input";
if(!mysqli_query($link, $sql)) {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
?>
<?php $questionsResult = $link->query("SELECT * FROM questions");
while($row = mysqli_fetch_array($questionsResult)){
$questionID = $row['id'];
$question = $row['question'];
?>
<div style = "margin: 20px 10%; padding: 50px 10%; width: 60%; border: 1px solid #444444;">
<form role="form" action = "" method="post" id="answerForm" name = "answerForm">
<h3><?php echo $question; ?></h3>
<input type = "hidden" name = "questionID" value = "<?php echo $questionID; ?>">
<?php
$optionsResult = $link->query("SELECT * FROM q_options WHERE q_id = $questionID");
while($optionsRow = mysqli_fetch_array($optionsResult)){
$optionsID = $optionsRow['id'];
$optionsQID = $optionsRow['q_id'];
$option = $optionsRow['options'];
?>
<div style = "padding: 5px 0;">
<input type = "radio" name = "<?php echo $optionsQID; ?>" value = "<?php echo $optionsID; ?>"> <?php echo $option; ?>
</div>
<?php
}
?>
<button type="submit" name = "answerQuestion">Send Answer</button>
</form>
</div>
<?php
}
?>
@TheCodesee你似乎没有看到'variable name'和'variable content'是两个不同的东西。什么引号? –
变量'$ optionsQID'未在isset($ _ POST ['answerQuestion'])部分中定义,因为您稍后不会声明它。用error_reporting(E_ALL)在文件顶部启用错误报告; ini_set('display_errors',1);' – drew010
我必须补充说,如果我移动整个if(isset($ _ POST [“answerQuestion”])){]在第二个while循环内,它会发布$ qAnswer这里的问题是它会为每个问题创建一个记录,即使这些额外的记录将有价值NULL – Alex