显示我的预估费用时遇到问题

问题描述 投票:0回答:1
<?php
session_start();
$title = "Cost Estimate";
include 'header.php';

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Services";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if (isset($_POST['service'])) {
    $selected_service = $_POST['service'];

    if ($selected_service == "Tile & Grout Cleaning") {
        $area = $_POST['area'];
        $cost = 0;

        // Fetch price from database
        $sql = "SELECT price FROM Services WHERE service_name = 'Tile & Grout Cleaning'";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            $price = $row["price"];

            $cost = $price * $area;

            echo "<h2>Cost Estimate for $selected_service</h2>";
            echo "<p>Area: $area square feet</p>";
            echo "<p>Estimated Cost: $$cost</p>";
        } else {
            echo "<p>No records found. Please select a service.</p>";
        }

    }

}

$conn->close();

include 'footer.php';
?>

<?php
session_start();
$title = "Estimate";
include 'header.php';
?>

<h2>Estimate</h2>
<center>

  <h2>Service Estimate Form</h2>
  <form action="estimate.php" method="post">
    <label for="service">Select a service:</label>
    <select class="service" name="service">
      <option value="">--Select--</option>
      <option value="Tile & Grout Cleaning">Tile & Grout Cleaning</option>
      <option value="Wooden Floor Polishing">Wooden Floor Polishing</option>
    </select>
    <br><br>
    <input type="submit" class="estimate">
  </form>
  <br /><br />
  <?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $selected_service = $_POST['service'];

    if ($selected_service == "Tile & Grout Cleaning") {
      echo '<h2>Tile & Grout Cleaning</h2>';
      echo '<form action="cost.php" method="post">';

      echo '<label for="area">How large is the area to be cleaned (in square feet)?: </label>';
      echo '<input type="number" name="area" required><br><br>';
      echo '<input type="submit" value="Calculate Cost">';
      echo '</form>';
    } else {
      echo '<p>Please select a service.</p>';
    }
  } ?>

  <?php include 'footer.php'; ?>

当我提交估算总计所需的详细信息时,成本页面为空白。这让我难住了。我感觉我尝试了一切。甚至继续 chatgtp 希望找到解决方案,但它告诉我将操作估计,php 更改为成本,php,但我需要操作估计,php 来获取服务的规格。

应显示的输出是(为输出添加的随机值)

-瓷砖和灌浆清洁的成本估算

-面积:100平方英尺

-预计费用:90 美元

我知道我刚刚发布了所有内容,但我是新人,所以我不确定如何正确使用这些功能。

感谢帮助。

php forms post
1个回答
0
投票

代码添加了一个隐藏的输入字段,以将所选服务从表单提交页面转移到另一个名为 cost.php 的页面。

echo '<input type="hidden" name="service" value="' . $selected_service . '">';


<?php
session_start();
$title = "Estimate";
include 'header.php';
?>

<h2>Estimate</h2>
    <center>
    <h2>Service Estimate Form</h2>
    <form method="post" action="estimate.php">
        <label for="service">Select a service:</label>
        <select class="service" name="service">
            <option value="">--Select--</option>
            <option value="Tile & Grout Cleaning">Tile & Grout Cleaning</option>
            <option value="Wooden Floor Polishing">Wooden Floor Polishing</option>
        </select>
        <br><br>
        <input type="submit" name="serviceSubmitted" class="estimate">
    </form>
<br />
<br />
<?php

if ($_POST['serviceSubmitted']) {
    $selected_service = $_POST['service'];
    if ($selected_service == "Tile & Grout Cleaning") {
        echo '<h2>Tile & Grout Cleaning</h2>';
        echo '<form action="cost.php" method="post">';
        echo '<label for="area">How large is the area to be cleaned (in square feet)?: </label>';
        echo '<input type="number" name="area" required><br><br>';
        // Added hidden value to make sure service value is passed to cost.php in $_POST arguments
        echo '<input type="hidden" name="service" value="' . $selected_service . '">';
        echo '<input type="submit" value="Calculate Cost">';
        echo '</form>';
    } else {
        echo '<p>Please select a service.</p>';
    }
}

?>

<?php
include 'footer.php';
?>
© www.soinside.com 2019 - 2024. All rights reserved.