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

时间:2011-03-19 11:21:38

标签: php oop

确定,

所以我有一个页面'index.html'的表单。用户提交表单,然后进入处理页面,例如'processing.php'。我想从索引页面调用此处理页面,将返回值分配给变量,然后从那里开始。

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

有关如何处理此问题的任何建议吗?

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以将jqueryajax一起使用。

或者,您只需正常提交:

<form action="processing.php">

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

答案 2 :(得分:1)

您可以采取多种方法。但是您通过使用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']);

在网址

中设置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);
}

答案 3 :(得分:0)

您可以尝试以下jQuery:

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

这劫持了提交方法(return false阻止默认),然后将数据发布到您的页面并在表单后插​​入响应。

答案 4 :(得分:0)

1)第一种方法

您可以将以下代码

header("location:index.html");  return; 

在processing.php文件的代码末尾,有助于在任务完成后重定向索引页。

2)第二种方法

将index.html文件重命名为index.php。 现在在index.php文件中包含processing.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>

享受!!!