输出表单提交成功到页面而不是重定向
Posted
技术标签:
【中文标题】输出表单提交成功到页面而不是重定向【英文标题】:Output form submit success into page instead of redirect 【发布时间】:2011-11-24 05:09:50 【问题描述】:我正在使用 WordPress 侧边栏小部件来捕获我的时事通讯的电子邮件。该插件已被编写为在提交后重定向到“成功页面”,这不是很好,因为我宁愿它只是在提交后在表单下的 div 中输出成功消息,以便访问者留在页面上。我怎样才能做到这一点?我正在考虑将成功页面上的元刷新返回到访问者所在的页面,但是当我很确定我已经看到页面上的电子邮件捕获表单时,这很笨拙,其中成功消息只是输出到没有重定向的页面。
如果您不介意,我将在此处复制相当多的插件代码,因为我不确定此处需要调整哪些内容才能获得我正在寻找的那种 onsubmit。或者,如果您有任何其他方式可以告诉我这样做,我将非常感谢您的帮助。非常感谢。
<?php
function wp_email_capture_form($error = 0)
$url = get_option('home');
$url = addLastCharacter($url);
?>
<div id="wp_email_capture"><form name="wp_email_capture" method="post" action="<?php echo $url; ?>">
<?php
if (isset($_GET["wp_email_capture_error"]))
$error = sanitize($_GET["wp_email_capture_error"]);
echo "<div style='width:80%;background-color: #FFCCCC; margin: 5px;font-weight'>Error: ". $error ."</div>";
?>
<label class="wp-email-capture-name">Name:</label> <input name="wp-email-capture-name" type="text" class="wp-email-capture-name"><br/>
<label class="wp-email-capture-email">Email:</label> <input name="wp-email-capture-email" type="text" class="wp-email-capture-email"><br/>
<input type="hidden" name="wp_capture_action" value="1">
<input name="Submit" type="submit" value="Submit" class="wp-email-capture-submit">
</form>
</div>
<?php
if (get_option("wp_email_capture_link") == 1)
echo "<p style='font-size:10px;'>Powered by <a href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n";
function wp_email_capture_form_page($error = 0)
$url = get_option('home');
$url = addLastCharacter($url);
$display .= "<div id='wp_email_capture_2'><form name='wp_email_capture_display' method='post' action='" . $url ."'>\n";
if (isset($_GET["wp_email_capture_error"]))
$error = sanitize($_GET["wp_email_capture_error"]);
$display .= "<div style='width:80%;background-color: #FFCCCC; margin: 5px;font-weight'>Error: ". $error ."</div>\n";
$display .= "<label class='wp-email-capture-name'>Name:</label> <input name='wp-email-capture-name' type='text' class='wp-email-capture-name'><br/>\n";
$display .= "<label class='wp-email-capture-email'>Email:</label> <input name='wp-email-capture-email' type='text' class='wp-email-capture-email'><br/>\n";
$display .= "<input type='hidden' name='wp_capture_action' value='1'>\n";
$display .= "<input name='Submit' type='submit' value='Submit' class='wp-email-capture-submit'></form></div>\n";
if (get_option("wp_email_capture_link") == 1)
$display .= "<p style='font-size:10px;'>Powered by <a href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n";
return $display;
function wp_email_capture_display_form_in_post($content)
$get_form = wp_email_capture_form_page();
$content = str_replace("[wp_email_capture_form]", $get_form, $content);
return $content;
?>
【问题讨论】:
【参考方案1】:这是我第一次尝试 Stack Overflow 的答案:
您的表单操作当前指向不同的页面,但您需要将其引导回您已经在的页面。您可以使用空白操作属性来执行此操作,如下所示:
<form action="">
完成此操作后,您可以在同一页面上使用$_POST
数据。在您想要输出的页面div
中,尝试如下操作:
if($_POST['wp_capture_action'] == 1)
// The form has been submitted, so
// print the success/failure message here
else
// The form hasn't been submitted, so print
// the form here.
我希望这会有所帮助!
【讨论】:
以上是关于输出表单提交成功到页面而不是重定向的主要内容,如果未能解决你的问题,请参考以下文章