【发布时间】:2017-04-25 07:21:03
【问题描述】:
我需要将值从主页内的单元格传递到另一个页面。
我必须通过:Monday9.00Usernameweekyear。在我的数据库中返回的输入中定义的最后 3 个 NULL。前 2 个返回 0。所有这些值都应该在主页中知道,因此用户不必插入任何内容。
用户名之前甚至打印在主页上。输入需要用户采取某种行动?如果是这样(这可以解释 null 和 0 值)我如何在不让用户插入内容的情况下传递值?
这是代码和一些描述我的情况的屏幕。
// First cell form to pass data to booking.php
<?php
$week = date("W");
$year = (isset($_GET['year']))?$_GET['year']:date("Y");
$week = (isset($_GET['week']))?$_GET['week']:Date('W');
if($week>52){
$year+= 1;
$week=1;
}elseif($week < 1) {
$year--;
$week = 52;
}
?>
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Pre Week</a> <!--Settimana Precendete-->
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Next Week</a> <!--Settimana Prossima-->
<table border="1px" class="WeekLayout">
<tr>
<td>Schedule</td>
<?php
if($week < 10) {
$week = '0'. $week;
}
for($day=1; $day<=7; $day++)
{
$d = strtotime($year."W".$week.$day);
echo "<td>".date('l',$d )."<br>";
echo date('d M Y',$d)."</td>";
}
?>
</tr>
<form action="Booking.php" method="POST" name="BookingForm" id="BookingForm">
<tr class="9">
<td>9.00
</td>
<td class="free" onclick="Change(this)"><a href=""> </a>
<input type="hidden" name="Monday">
<input type="hidden" name="9.00"></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
<td class="free" onclick="Change(this)"><a href=""></a></td>
</tr>
<tr>
</table>
<input type="hidden" name="$Username">
<input type="hidden" name="$week">
<input type="hidden" name="$year">
<input value="Prenota" type="submit" class="buttonsubmit" id="Prenota">
</form>
</div>
//Connection to database
<?php
$user = 'root';
$password = '';
$db = 'elencoprenotazioni';
$host = 'localhost';
$dblink2 = new mysqli($host, $user, $password, $db)
or die("Connessione non riuscita: " . mysqli_error());
?>
//Prenotation system
<?php
include("Connessione2.php");
session_start();
$Username = $_POST['Username'];
$week = $_POST['week'];
$year = $_POST['year'];
$day = $_POST['day'];
$hour = $_POST['hour'];
$queryinsert = mysqli_query($dblink2, "INSERT INTO calendario (Username, week, year, day, hour) VALUES ('$Username','$week','$year','$day','$hour')");
if($queryinsert)
{
header("location: index.html");
}
mysqli_close();
?>
在我的数据库中这样做我只得到了这个:
如您所见,我得到 0 的值应该在我的主页中,而 null 来自我在表单中定义的值。
页面的完整视图:
从 URL 中可以看出,week 和 year 应该是已知的,Username 打印在注销按钮附近。
【问题讨论】:
-
我打算尝试修复您的 HTML 缩进,并意识到您将各种标签弄乱了。例如,您在表单结束之前关闭了表格,但在表格开始之后没有打开表格。您应该从修复 HTML 并使用适当的缩进开始。
-
忘记在这里复制一部分代码(与表格第一行相关的代码)。不幸的是,缩进是唯一工作正常的部分
-
你有很多个错误——validator.w3.org/nu
-
@Quentin 检查并解决了所有案例。谢谢
标签: php forms post input mysqli