【发布时间】:2022-01-18 21:07:43
【问题描述】:
我在我的 Wordpress 网站上安装了 WSForm Pro 表单管理插件。该插件利用 AJAX 作为发布表单数据的唯一方法,以便在提交时仅更新表单区域,而不是整个页面。提交时,我需要在同一页面上显示表单的数据。
我做了什么。通过向我的主题的functions.php添加一个函数,我能够将表单的数据作为会话变量获取:
// Add action to process WS Form form data
add_action('wsf_action_tag', 'wsf_action_function', 10, 2);
// My function for action
function wsf_action_function($form, $submit) {
// Get submit value (Change '123' to your field ID)
$submit_value = wsf_submit_get_value($submit, 'field_18');
session_start();
$_SESSION['form'] = $submit_value;
// Do something with $submit_value here
// ...
}
我还在页面中添加了以下 php 代码,以显示上面的会话变量:
<?php
session_start();
$form = $_SESSION['form'];
var_dump($form);
?>
问题。当我提交表单时,除了内置的成功消息(如 AJAX 所假设的那样)之外没有任何变化,尽管在页面重新加载时已成功显示提交的数据。如果我可以拥有自己的 AJAX 脚本,我想稍微修改它以重新加载整个页面。但是由于我使用的是第三方插件,所以任务太复杂了。
问题是如何更改代码的任何部分以在同一页面上提交时显示表单的数据?
【问题讨论】:
-
您不能在 AJAX 操作中将输出打印到屏幕上。
var_dump($form);不应该做任何事情。此外 .. 这样的会话不适用于 WordPress。 -
@HowardE,非常感谢您的评论!我已经意识到没有 php 代码可以用于提交表单。完成这项工作的原因是向functions.php添加函数、上面的php代码和内置的重定向操作(请参阅下面的我的帖子)。会议对我有用!
标签: php ajax wordpress forms plugins