【问题标题】:Form Post method passing only null and 0 to other pageForm Post 方法仅将 null 和 0 传递给其他页面
【发布时间】:2017-04-25 07:21:03
【问题描述】:

我需要将值从主页内的单元格传递到另一个页面。

我必须通过:Monday9.00Usernameweekyear。在我的数据库中返回的输入中定义的最后 3 个 NULL。前 2 个返回 0。所有这些值都应该在主页中知道,因此用户不必插入任何内容。

用户名之前甚至打印在主页上。输入需要用户采取某种行动?如果是这样(这可以解释 null0 值)我如何在不让用户插入内容的情况下传递值?

这是代码和一些描述我的情况的屏幕。

// 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 中可以看出,weekyear 应该是已知的,Username 打印在注销按钮附近。

【问题讨论】:

  • 我打算尝试修复您的 HTML 缩进,并意识到您将各种标签弄乱了。例如,您在表单结束之前关闭了表格,但在表格开始之后没有打开表格。您应该从修复 HTML 并使用适当的缩进开始。
  • 忘记在这里复制一部分代码(与表格第一行相关的代码)。不幸的是,缩进是唯一工作正常的部分
  • 你有很多个错误——validator.w3.org/nu
  • @Quentin 检查并解决了所有案例。谢谢

标签: php forms post input mysqli


【解决方案1】:

为什么要在 name 属性中使用值?

请更改这些...

<input type="hidden" name="Monday">
<input type="hidden" name="9.00"></td>
<input type="hidden" name="$Username">
<input type="hidden" name="$week">
<input type="hidden" name="$year">

先到这些

<input type="hidden" name="day" value="Monday">
<input type="hidden" name="hour" value="9.00"></td>
<input type="hidden" name="Username" name="MyUsername">
<input type="hidden" name="week" name="53">
<input type="hidden" name="year" name="2016">

【讨论】:

  • 您好,感谢您的回复。好的值我可以在我的数据库中插入数据但是 1) 你的意思是 name="week" value="53" 对吗? 2) 用户名​​周和年可以从第 53 周更改为第 1 周和 2017 年。我怎样才能使这个自适应?认为由于这些值存储在我的年和周变量中,我可以使用那些
猜你喜欢
  • 2014-08-25
  • 2012-11-28
  • 2012-12-29
  • 2016-09-04
  • 2020-05-18
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多