我在db中有两个表,输入表nd输出表。输入表有两列$ID (autoincreament), $question
。表2有两列$Q_ID, Answer
。
我做了一个php页面(1),我打印出表1的内容(QUESTION),我添加了一个文本区域以获取访问者的答案,同时我还为表格添加了一个回显“隐藏”字段用于ID一。
现在这个php页面1重定向到php第2页,在那里我将文本区域输入POST到表2中的答案列。但不幸的是,ID无法在表2的q_id列中发布... 我尝试了很多,但没有希望......
我的PHP脚本#1如下 ::
<div class="name">
<?php
$sql = "SELECT * FROM input";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$index = 0;
while($row = $result->fetch_assoc()) {
$index++; // stuff inside foreach goes here
?>
<div id="q">
<B><big><font color= #ba4a00> Q:</font></big> <?php echo $row["question"]; ?>
<?php
echo '<button class="add" id="add_'.$index.'"><B>Add Answer</B></button>';
echo '<form style="display:none;" name="answer_'.$index.'" method="post" action="output.php">';
echo '<input type="hidden" name="questionid" value="<?php echo $row[id]?>"/>';
echo '<textarea type="text" class="addtext" name="addtext" required id="addtext_'.$index.'" placeholder="Please type your answer here.." ></textarea>';
echo '<button onClick="addsubmit('.$index.');" type="submit" id="addsubmit_'.$index.'" class="addsubmit"><B>Submit</B></button>';
echo '</form>';
?>
</div>
<?php
}
} else {
echo "0 results";
}
$conn->close();
?>
</div>
我的PHP脚本#2如下 ::
<?php include('1.php'); ?>
<?php
$servername = "localhost";
$dbusername = "root";
$dbpassword = "*******";
$dbname = "the_database";
$addtext = $_POST['addtext'];
$questionid = $_POST['questionid'];
$date = date_default_timezone_set('Asia/Kolkata');
$date = date('M-d,Y H:i:s');
$conn = new mysqli ($servername, $dbusername, $dbpassword, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO output (question_id, answer, date)
VALUES ('$questionid', '$addtext', '$date')";
if ($conn->query($sql) === TRUE) {
echo '<script language="javascript">';
echo 'alert("Your Answer has been Succesfully posted")';
echo '</script>';
echo '<a href="1.php"></a>';
}
else {
echo "ERROR" . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我希望将相应的问题ID及其答案传递给表2 非常感谢任何帮助..
答案 0 :(得分:0)
尝试在php 1中用双引号括起id:
echo '<input type="hidden" name="questionid" value="'.$row['id'].'"/>';
yip ...更仔细地看一下你在PHP#1中混合单引号和双引号时遇到了一些问题。
例如,在此行上,echo命令在add _
之后的第二个单引号之后结束echo '<button class="add" id="add_'.$index.'"><B>Add Answer</B></button>';
您需要始终使用单引号或双引号。
答案 1 :(得分:0)
在$row['id']
中提供单引号。将此<?php echo $row[id] >?
更改为<?php echo $row['id'] >?
echo '<input type="hidden" name="questionid" value="'. $row['id'].'"/>';
答案 2 :(得分:0)
您已经使用PHP中的ECHO属性回显表单,但之后您也回应了它,这是错误的。
你必须像这样制作代码。
echo '<input type="hidden" name="questionid" value="'. $row['id'].'"/>';
试试这个并分享关于代码的想法..