Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当用户点击提交按钮时,如何将数据发送回同一表单_Php_Oop - Fatal编程技术网

Php 当用户点击提交按钮时,如何将数据发送回同一表单

Php 当用户点击提交按钮时,如何将数据发送回同一表单,php,oop,Php,Oop,嗯 因此,我在“index.html”页面上有一个表单。用户提交表单,然后进入一个处理页面,比如“processing.php”。我想从索引页面调用这个处理页面,将返回值赋给一个变量,然后从那里开始 我遇到的问题是,只有当用户在index.html页面上提交表单时,才应该调用该页面。那么,在页面实际提交并发送到该页面之前,我如何调用该处理页面呢?(我不知道我是否讲得通,但我希望用户点击submit,然后该操作调用processing页面,该页面将结果返回到index页面以显示) 关于如何实现这一

因此,我在“index.html”页面上有一个表单。用户提交表单,然后进入一个处理页面,比如“processing.php”。我想从索引页面调用这个处理页面,将返回值赋给一个变量,然后从那里开始

我遇到的问题是,只有当用户在index.html页面上提交表单时,才应该调用该页面。那么,在页面实际提交并发送到该页面之前,我如何调用该处理页面呢?(我不知道我是否讲得通,但我希望用户点击submit,然后该操作调用processing页面,该页面将结果返回到index页面以显示)

关于如何实现这一点有什么建议吗?

您可以与一起使用

或者,您只是正常提交:

<form action="processing.php">


processing.php
中,在“处理”之后,它将重定向到index.html

如果index.html页面实际上是index.html而不是重定向到php脚本,那么您将需要能够动态更新DOM的东西,即Javascript。您可以使用JQuery AJAX函数将结果返回到index.html页面并更新页面上的元素


或者,您可以创建一个index.php,提交给自己,并且仅当您的表单变量存在于$\u POST中时才返回表单结果。

您可以尝试以下jQuery:

$("form").submit(function () {
  $.post("processing.php", $(this).serialize(), function(response) {
    $(this).after(response);
  });
  return false;
});

这会劫持submit方法(
return false
阻止默认值),然后将数据发布到页面并在表单后插入响应。

您可以采取多种方法。但是您通过使用
html
文件作为索引来限制自己,因此您应该将该文件重命名为
index.php

将返回消息存储在会话中

# processing.php
session_start();
$_SESSION['message'] = 'Thanks for submitting the form';

//redirect to home page
header('Location: index.php');

# index.php - you will need to use php files to clear the session
session_start();
echo isset($_SESSION['message']) && !empty($_SESSION['message']) ?
  $_SESSION['message'] : '';

//clear the session
unset($_SESSION['message']);
在URL中设置GET参数

# processing.php
//redirect to index
header('Location: index.php?processing=true');

# index.php
if(isset($_GET['processing'])) {
  echo 'Form successfully submitted.'
}
将表单提交给自己

如果将表单提交给自身(即index.php),则可以在该文件中进行处理,并执行以下操作

# index.php
if(isset($_POST['email'])) {
 //process form
 // ...

 //echo message
 echo 'Form submitted successfully.'
}
使用AJAX将表单提交到processing.php

我注意到上面的海报表明了这一点。您应该查找jQuery
ajax
方法,并在processing.php中回显一条消息。然后在“ajax”方法的成功函数中,显示消息

success: function(data) {
  $('#results').html(data);
}
1) 第一种方法

你可以把下面的代码

header("location:index.html");  return; 
在processing.php文件中的代码末尾,该文件有助于在任务完成后重定向索引页

2) 第二种方法

将index.html文件重命名为index.php。 现在将processing.php文件包含在index.php文件中,然后您的代码类似于以下内容:

include("processing.php");
<html>
<body>
<form method="post" action="">
User Name   :   <input type="text" name="userName" />
<input type="submit" name="submit" value="Update"/>
</form>
</body>
</html>
include(“processing.php”);
用户名:

享受

是的,我真的试图避免将jQuery和ajax引入其中,但看起来我必须这样做。听起来他想将一些结果集返回到index.html,所以重定向回页面将不起作用,因为index.html是一个静态页面,除非他有重定向将index.html重写到某个PHP脚本。@Canuteson哦!听起来确实如此。不过不是很清楚。但是如果是这样,那么解决方案是JS.ok,假设我使用第二个选项(非jquery)。将php代码放在与HTML相同的页面中处理请求有多安全?假设PHP将处理敏感数据,那么使用这种方法是否足够安全?有人能得到php代码吗?没有,php代码都是在服务器端处理的。只要你正确地清理了你的用户输入,你就会没事的。通过将数据提交到单独的处理脚本来公开代码的风险并不比将代码提交到同一页面的风险更大。这听起来像是一个赢家。谢谢大家!请参阅我下面关于安全问题的问题?这将是最简单的解决方法,我只是对这个方法的安全性有疑问。西蒙,这个方法看起来很有趣。我一定要试试这个。