javascript - 如何从 html 输入表单中使用 php 查找时差
问题描述
我有三个页面,第一页(html)请求用户输入两个日期以获取日期。第二页 (php) 将显示符合条件的结果和一个选择按钮供用户选择,第三页 (php) 将显示用户从第二页选择的信息。现在我可以将信息从 SQL 传递到第三页,但我无法获取第一页到最后一页的数据信息以显示日差,因此我可以通过乘以比率 * 日差来计算总成本。
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<span class="form-label">Drop off</span>
<input class="form-section" type="date" name="date1" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<span class="form-label">Pick up</span>
<input class="form-section" type="date" name="date2" required>
</div>
</div>
</div>
<div class="row">
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$severname = "localhost";
$username = "root";
$password = "";
$dbname = "dbn";
//$conn = mysqli_connect('xx', 'xx', 'xx','xx');
$conn = mysqli_connect('xx', 'xx', 'xx','xx');
//check connection
if (mysqli_connect_errno())
{echo nl2br("Failed to connect to MySQL: ". mysqli_connect_error() . "\n"); }
else
{ echo nl2br("");}
$city = mysqli_real_escape_string($conn, $_POST['city']);
$state = mysqli_real_escape_string($conn, $_POST['state']);
//$date1 = mysqli_real_escape_string($conn, $_POST['date1']);
//$date2 = mysqli_real_escape_string($conn,$_POST['date2']);
$pet = mysqli_real_escape_string($conn, $_POST['pet']);
//var_dump($date2);
$sql = "SELECT CONCAT(s.lname, ' ', s.fname) AS fullName, s.pic, s.ratings, s.rate, s.phone, s.address FROM Pet_Sitter AS s WHERE s.city='".$city."' AND s.state='".$state."' AND s.pet_type='".$pet."' "
;
//echo $sql."<br/>";
$result = mysqli_query($conn,$sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($conn));
exit();
}
if ($result=mysqli_query($conn,$sql))
{
// Return the number of rows in result set
$rowcount=mysqli_num_rows($result);
printf("");
}
//var_dump($result);
$num_rows = mysqli_num_rows($result);
?> <div class="container"> <?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$rate = $row['rate'];
$fullName = $row['fullName'];
//var_dump($row);
// echo "<tr><td>" . $row['fullName'] . " </td><td>" . $row['ratings'] . " </td><td>" . $row['rate'] . " </td></tr>";
// echo '<div class="listing-item">';
echo '<div class="listing-item">';
echo '<article class="geodir-category-listing fl-wrap">';
echo '<div class="geodir-category-img">';
echo '<img src="../images/all/1.jpg" alt="">';
echo '<div class="overlay"></div>';
echo '<div class="list-post-counter"><span>' . '$'. $row['rate'] . '</span></div>';
echo '</div>';
echo '<div class="geodir-category-content fl-wrap">';
echo '<a class="listing-geodir-category" href="payment.php?rate='.$rate.'&fullname='.$fullName.'">Select</a>';
echo '<h3><a href="../index.html">' . $row['fullName'] . '</a></h3>';
echo '<p>PET-SITTER INFORMATION</p>';
echo '<div class="geodir-category-options fl-wrap">';
echo '<span>' . 'Reviews ' . $row['ratings'] .'</span>';
echo '<div class="geodir-category-location">'. $row['address'] . " · " . $row['phone'] .
'</div>';
echo '</div>';
echo '</div>';
echo '</article>';
echo '</div>';
}?>
<?php
} else {
echo "0 results";
}
mysqli_close($conn);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Work</title>
<!-- Bootstrap -->
<link type="text/css" rel="stylesheet" href="css/bootstrap-grid.min.css" />
<link type="text/css" rel="stylesheet" href="css/style.css" />
<link rel="shortcut icon" href="images/pet-logo.png">
</head>
<body>
<!-- Menu Bar -->
<div class="menu">
<div class="container-fluid my-container">
<div class="row my-row">
<div class="col-1">
<div class="menu-logo">
<a href="index.html"><img src="images/pet-logo.png" alt=""></a>
</div>
</div>
<div class="nav-col col-7"></div>
<div class="nav-col col-2">
<div class="dropdown">
<button class="dropbtn"><a href="index.html">Home</a></button>
<div class="dropdown-content">
<a href="about.html">About Us</a>
<a href="contacts.html">Contact</a>
</div>
</div>
</div>
<div class="nav-col col-1"><a href="login.html">Login</a></div>
<div class="nav-col col-1"><a href="register.html">Sign Up</a></div>
</div>
</div>
</div>
<!-- End of Menu -->
<div id="booking" class="section">
<div class="section-center">
<div class="container">
<div class="row">
<div class="col-4">
<div class="booking-form">
<form method="POST">
<h1>Confirm Order</H1>
<div class="booking-form">
<span class="form-label"><?php
$fullName = isset($_GET['fullname']) ? $_GET['fullname']: '';
echo 'Sitter: <br>' . $fullName;
?></span>
</br>
</br>
<div class="form-group">
<span class="form-label"><?php
$rate = isset($_GET['rate'])? $_GET['rate']:'';
echo 'Total Amount: <br>$'. $rate;
?></span>
</div>
</div>
<br>
<br>
<div class="form-btn">
<a class="submit-btn" href = "https://www.tutorialspoint.com/php/php_sessions.htm">Confirm and Pay</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
解决方案
为了发送您的数据,您希望将它们放在一个表单中,并给它一个指向您要处理数据的端点的操作。
<form action="/the/route/to/your/phpfile.php" method="post">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<span class="form-label">Drop off</span>
<input class="form-section" type="date" name="date1" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<span class="form-label">Pick up</span>
<input class="form-section" type="date" name="date2" required>
</div>
</div>
</div>
<div class="row">
<button type="submit">Click here</button>
</form>
之后,您在目的地可以通过从 $_POST 数组中检索数据来获得所需的内容,就像您已经使用它一样。您也可以有一个提交按钮,但如果我是对的,您也可以按 Enter 提交。
顺便说一句:如果你想用日期计算很多,你可能想在你的项目中实现 Carbon。https://carbon.nesbot.com/docs/
推荐阅读
- rest - 补丁 http 方法的 REST full api 应该如何响应?
- ruby-on-rails - ApplicationController Private method's variable rspec testing
- sql - SQL - 如何在特定列中选择具有最大值的数据行?[版本 2]
- terminal - MicroBlaze:应用程序烧录后如何通过 JTAG 链接查看应用程序消息
- docker - Dokku:没有看到集装箱港口
- android - 为什么 setEnabled(false) 没有停用按钮
- java - Java Docusign 身份验证
- javascript - Node.js——如何以最快的方式获取 Google Drive API 的内容
- django - 如何解决“NoneType”对象不可下标
- azure-devops - 我们可以使用代理池“Hosted VS2017”将文件从构建服务器的 $(System.DefaultWorkingDirectory) 复制到 Azure Iaas 服务器吗