【问题标题】:Post variables from a second table in form在表单中发布第二个表中的变量
【发布时间】:2015-11-03 23:30:04
【问题描述】:

我正在尝试发布 3 个变量,以便将它们插入到 table2 中。如您所见,我正在使用 SELECT 从 table1 获取 3 个变量以插入到 table2 中,但在查看源代码时看不到输入值。

循环有效。我在循环中得到结果,但输入后回显什么都没有。我尝试了许多不同的方法,但似乎无法让它发挥作用。有人可以帮忙吗?

<?php
include('theconnection.php');
$con = mysqli_connect($host,$user,$pass,$dbName);
if (!$con)
 {
 die('cannot connect: ' . mysqli_error($con));
}
 mysqli_select_db($con,"thebooks");
 $result = mysqli_query($con,"SELECT * FROM books");
 $result = mysqli_query($con,"SELECT b.id, b.name, b.cover, b.pageno FROM books");
while($row = mysqli_fetch_array($result))
{
echo ("<input type='text' value='$row[name]' name='name' id='name'>");
echo ("<input type='text' value='$row[cover]' name='cover' id='cover'>");
echo ("<input type='text' value='$row[pageno]' name='pageno' id='pageno'>");
 }
?>                   

<input type="hidden" name="name" id="name" value="<?php echo "{$_POST['name']}"; ?>">
<input type="hidden" name="cover" id="cover" value="<?php echo "{$_POST['cover']}"; ?>">
<input type="hidden" name="pageno" id="pageno" value="<?php echo "{$_POST['pageno']}"; ?>">

【问题讨论】:

  • 我们能看到完整的form吗?
  • "SELECT * FROM books => "); 在行尾丢失。 (顺便说一句,我不知道您为什么在覆盖$result 下面的行时执行此查询 - 而且您似乎没有尝试在任何地方使用它)
  • ??你在说什么? $result 在 while 循环中。请关注隐藏输入中的问题,它没有回显变量。循环工作正常。
  • 对不起,我不知道你做了什么还不够!你使用表单标签吗?你的提交按钮在哪里

标签: php html mysql sql


【解决方案1】:
$result = mysqli_query($con,"SELECT * FROM books");
$result = mysqli_query($con,"SELECT b.id, b.name, b.cover, b.pageno FROM books");

我不明白为什么会有两个查询。你可以直接放弃第一个。另外,我想建议你这个-

而不是像这样呼应

while($row = mysqli_fetch_array($result))
{
echo ("<input type='text' value='$row[name]' name='name' id='name'>");
echo ("<input type='text' value='$row[cover]' name='cover' id='cover'>");
echo ("<input type='text' value='$row[pageno]' name='pageno' id='pageno'>");
 }

像这样回应它-

while($row = mysqli_fetch_array($result))
{
echo "<input type='text' value='" . $row[name] . "' name='name' id='name'>";
echo "<input type='text' value='" . $row[cover] . "' name='cover' id='cover'>";
echo "<input type='text' value='" . $row[pageno] . "' name='pageno' id='pageno'>";
}

在你的最后一段代码中,请进行这些小改动-

<input type="hidden" name="name" id="name" value="<?php echo $_POST['name']; ?>">
<input type="hidden" name="cover" id="cover" value="<?php echo $_POST['cover']; ?>">
<input type="hidden" name="pageno" id="pageno" value="<?php echo $_POST['pageno']; ?>">

请澄清-为什么要在循环中回显输入控件?您可能会在页面上呈现数百个输入控件。现在你不想要那个是吗?希望我的回答有帮助。

【讨论】:

  • 感谢您的评论。我在循环中进行测试以查看是否获取了 name、cover 和 pageno 变量。隐藏的输入是抓取变量并发布它们。但是即使使用您的代码,问题仍然存在。 db 中的 name、cover 和 pageno 列是空的。唯一插入的变量是 id。我还尝试在电子邮件中填充姓名、封面和页面编号。我希望你发布的内容有效。组合框一定很难做到。
猜你喜欢
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多