【问题标题】:How to display the results from a separate PHP file in an HTML page?如何在 HTML 页面中显示来自单独 PHP 文件的结果?
【发布时间】:2017-12-01 06:56:00
【问题描述】:

我需要在 HTML 表单页面本身中显示总和。我的 PHP 文件中给出了部分代码:

<?php 
  while($row = mysqli_fetch_array($search_result)):?>
    <?php
      $sum=$sum+$row['value']; 
    ?>
    <tr>
      <td><?php echo $row['id'];?></td>
      <td><?php echo $row['time'];?></td>
      <td><?php echo $row['value'];?></td>
    </tr>
<?php endwhile;?>

在我的 HTML 表单中,我有一个 total 按钮。当我单击它时,我需要显示总和值。我该怎么做?

<form action="php_html_table_data_filter3.php" method="post">
  From:<input type="text" name="valueToSearch1"><br><br>
  To:<input type="text" name="valueToSearch2"><br><br>
  <input type="submit" name="search" value="Filter"><br><br>
  <button type="button">Total</button><br><br>
</form>

【问题讨论】:

  • .html 和 .php 文件是分开的吗?
  • @pAsh 文件是分开的
  • 为隐藏字段赋值。单击“总计”按钮后,从隐藏字段中获取值并显示在您想要的任何位置。
  • 另一种更安全的方法是使用 AJAX。在服务器端存储总和。一旦点击“总计”按钮进行 ajax 调用并将 ajax 响应显示为总和。
  • 表格行&lt;tr&gt; 怎么样?你是如何使用这些的?他们是否也需要出现在结果中?

标签: php html mysql


【解决方案1】:

我假设你想显示总数,如果它是正确的,那么按照下面的方法

 $sum = 0;

     while($row = mysqli_fetch_array($search_result)):?>

       $sum+= $row['value'];

    <?php endwhile;?>

    echo $sum;

或

如果您想在不重新加载页面的情况下显示结果。您必须在 ajax 请求中编码。

【讨论】:

  • 但我想在同一个表单页面上显示它
  • 那么你必须使用 jquery 编写 onclick ajax 请求。
【解决方案2】:

我们在 html 页面中使用 ajax 来访问 php 页面中的内容:

HTML:
<html>
<script src="jquery.min.js"></script> // script download
<form action="php_html_table_data_filter3.php" method="post">
  From:<input type="text" name="valueToSearch1"><br><br>
  To:<input type="text" name="valueToSearch2"><br><br>
  <input type="submit" name="search" value="Filter"><br><br>
  <button type="button" id="total">Total</button><br><br>
  Your sum:<span id="sum"></span>
</form>
</html>
<script>
$( "#total" ).click(function() {
    $.ajax({
        url : "phptest.php",
        type: "POST",
        success: function(data)
        {
           $('#sum').html(data);
        }
    });
});
</script>

PHP: here your php code
<?php 
echo "10";
?>

【讨论】:

    【解决方案3】:

    您需要使用PHP SESSIONs,并使用您在 POST 请求中发送的信息。基本上,两个按钮都需要属于 submit 类型,以便它们都将请求发送到进程 (process.php)。然后你可以使用会话来设置你的结果。

    以这种方式进行:

    index.php

    <?php session_start(); ?>
    <form action="process.php" method="post">
        From:<input type="text" name="valueToSearch1"><br><br>
        To:<input type="text" name="valueToSearch2"><br><br>
        <input type="submit" name="search" value="Filter"><br><br>
        <button name="total_btn" type="submit">Total</button>
    </form>
    
    <div id="results">
        <?= (!empty($_SESSION["table"])) ? $_SESSION["table"] : "" ?>
        <br>
        <?= (!empty($_SESSION["sum"])) ? "Sum: " . $_SESSION["sum"] : "" ?>
    </div>
    <?php
    session_destroy();
    

    process.php

    <?php
    session_start();
    
    $sum = 0;
    $table = "<table>";
    while ($row = mysqli_fetch_array($search_result)) {
        $sum += $row['value'];
        $table .= "<tr>
                      <td>{$row['id']}</td>
                      <td>{$row['time']}</td>
                      <td>{$row['value']}</td>
                   </tr>";
    }
    $table .= "</table>";
    
    if (isset($_POST['total_btn'])) {
        $_SESSION["sum"] = $sum;
    }
    $_SESSION["table"] = $table;
    header('Location: index.php');
    

    【讨论】:

      【解决方案4】:

      如果我正确理解了您的问题,那么您需要 Ajax 调用。 GET 或 POST 基于您的偏好。您的 HTML 代码将与 php 代码分开,基本上 php 代码将响应 Ajax 调用并给您输出。

      修改后的代码 - Test.html

      <form action="php_html_table_data_filter3.php" method="post">
              From:<input type="text" name="valueToSearch1"><br><br>
              To:<input type="text" name="valueToSearch2"><br><br>
              <input type="submit" name="search" value="Filter"><br><br>
              <button type="button" id="gettotal">Total</button><br><br>
      
          </form>
      
      <script>
      
      $("#gettotal").click(function(e) {
          e.preventDefault();
          $.ajax({
          type: 'GET',//based on your choice or requirement
          url: 'calculate.php',
          success: function(response) {
             //here u decide where to show output value
      
               alert(response);
      
          },
          error: function(result) {
                  alert('error');
              }
          });
      });
      
      </script>
      

      calculate.php

      <?php 
      $sum = 0;
        while($row = mysqli_fetch_array($search_result))
        {
         //calculate your total and send back as JSON obj.
            $sum=$sum+$row['value']; 
        }
       echo json_encode($sum);
      ?>
      

      【讨论】:

      • 总和显示在下一页
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多