【问题标题】:How do I submit form data to a separate PHP file without clearing the form如何在不清除表单的情况下将表单数据提交到单独的 PHP 文件
【发布时间】:2019-09-05 23:05:54
【问题描述】:

我正在尝试将表单数据提交到单独的 PHP 文件,但表单一直关闭!

我尝试了 POST 和 GET,并且尝试了 action="ReadFrmData.php",但没有使用“act=form”。我的浏览器是 Windows 10 上的 Chrome,PHP 7.1.26。

这是表格:

<!DOCTYPE html>
<html>
<head>

</head>
<body>

        <form method="post" action="ReadFrmData.php?act=form" name="myform">
            Value:<input type="text" style = "width: 100px"name="sdata" value = "0"><br><br>
            Set Position High Limit<input type="radio" name="Set" value="SetPosHigh"><br>
            Set Position Low Limit<input type="radio" name="Set" value="SetPosLow"> <br>
            <input type="submit" name="sendset" value="Send"/><br>
        </form>


</body>
</html>

这是单独的 PHP 文件:

<?php
/* Read data and commands from the form */ 

include_once 'ChromePhp.php';

if (isset($_POST['sendset'])){  /* Command submit button */
    $sdata = $_POST['sdata'];
    $param = $_POST['Set'];
    $val = 0;   
    ChromePhp::log("Sendset");  //console message
}   
?>

我需要保持表单打开。 谢谢!

【问题讨论】:

  • ajax 就是你想要的

标签: php html


【解决方案1】:

您的需求在于前端 (HTML) 文件,而不是 PHP。

使用 Javascript 来捕获表单的值,并通过上述 Ajax 发布它们。

参考:

https://stackoverflow.com/a/40758582/8004150

作为指南。这样,您还可以处理 PHP 生成的响应。

【讨论】:

    【解决方案2】:

    您正在寻找 AJAX(异步 JavaScript 和 XML)。简而言之,就是使用XMLHttpRequest 对象与服务器进行通信。它可以发送和接收各种格式的信息,包括 JSON、XML、HTML 和文本文件。 AJAX 最吸引人的特点是它的“异步”特性,这意味着它可以与服务器通信、交换数据和更新页面,而无需刷新页面。

    这是一个普通的javascript实现示例:

    document.querySelector('form[name=myform]').onsubmit = ev => {
      ev.preventDefault();
    
      // Set up our HTTP request
      var xhr = new XMLHttpRequest();
    
      // Setup our listener to process completed requests
      xhr.onload = () => {
    
        // Process our return data
        if (xhr.status >= 200 && xhr.status < 300) {
          // What do when the request is successful
          console.log('success!', xhr);
        } else {
          // What do when the request fails
          console.log('The request failed!');
        }
    
        // Code that should run regardless of the request status
        console.log('This always runs...');
      };
    
      // Create and send a GET request
      // The first argument is the post type (GET, POST, PUT, DELETE, etc.)
      // The second argument is the endpoint URL
      xhr.open('POST', 'ReadFrmData.php?act=form');
      xhr.send();
    }
    <form method="post" name="myform">
      Value:<input type="text" style="width: 100px" name="sdata" value="0"><br><br> Set Position High Limit<input type="radio" name="Set" value="SetPosHigh"><br> Set Position Low Limit<input type="radio" name="Set" value="SetPosLow"> <br>
      <input type="submit" name="sendset" value="Send" /><br>
    </form>

    如果您已经在应用程序中使用 jQuery,请查看 jQuery.ajax(),因为它实现起来要简单得多 (imo)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 2017-04-03
      • 2015-09-29
      • 2021-09-24
      • 2019-12-21
      • 1970-01-01
      相关资源
      最近更新 更多