2011-09-24 29 views
1

我正在使用一個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

這是我在一個堆棧溢出的答案第一次嘗試:

你的表單操作指導目前到不同的頁面,但你需要它引回你已經在頁面上。你可以用空白action屬性做到這一點,就像這樣:

<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. 
} 

我希望這有助於!

相關問題