2013-03-10 19 views
0

我爲wordpress創建了一個聯繫表單。 我工作的形式很好。我遇到的問題是,我的聯繫表單處於隱藏狀態。在點擊郵件圖標時滑動的 。聯繫表格wordpress,在同一網站上顯示感謝信息(disabel redirect)

所以當我發送聯繫表格時,它將我重定向到一個感謝頁面,我還沒有弄清楚如何禁用此功能並在同一頁面上顯示謝謝信息。

任何想法?我一直在閱讀其他問題,但似乎無法幫助我。 的一些代碼。

 <?php if (have_posts()) while (have_posts()) : the_post(); ?> 
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 

<?php if($email){ ?> 
    <p><strong>Message succesfully sent. I'll reply as soon as I can</strong></p> 
    <?php } else { if($error) { ?> 
    <p><strong>Your messange hasn't been sent</strong><p> 
    <?php echo $error; ?> 
    <?php } else { the_content(); } ?> 

      <section class="loginform"> 
       <div class="contactform"> 
       <form action="<?php the_permalink(); ?>" id="contact_me" method="post"> 
        <input type="hidden" name="sent" id="sent" value="1" /> 
        <ul> 
         <li> 
          <input type="text" name="your_name" id="your_name" value="<?php echo $_POST[your_name];?>" placeholder="Name" required> 
         </li> 
         <li> 
          <input type="text" name="your_email" id="your_email" value="<?php echo $_POST[your_email];?>" placeholder="Email" required> 
         </li> 
         <li> 
          <input type="text" name="your_subject" id="your_subject" value="<?php echo $_POST[your_subject];?>" placeholder="Subject" required> 
         </li> 
         <li> 
          <textarea name="your_message" id="your_message"><?php echo stripslashes($_POST[your_message]); ?></textarea> 
         </li> 
         <li> 
          <input type="submit" name = "send" value = "Send email" /> 
         </li> 
        </ul> 
       </div> 
       </form> 
       </section> 
    <?php } ?> 

    <?php endwhile; ?> 

回答

1

你可以最好的解決這個問題,使用ajax;你爲此建立了一個插件嗎?

您應該:)

你的插件文件,註冊一個新的Ajax鉤:

// add ajax request 
add_action('wp_ajax_send_form', 'sendForm'); 
// add this so non-admins can use it 
add_action('wp_ajax_nopriv_send_form', 'sendForm'); 

二,建立功能sendForm():

<?php 
function sendForm() { 

    //validation logic here, get data from $_POST 

    // send mail logic here 

    if($email){ 
     echo '<p><strong>Message succesfully sent. I will reply as soon as I can</strong></p>'; 
    } else { if($error) { 
     echo '<p><strong>Your messange has not been sent</strong><p>'.$error; 
    } else { the_content(); 

    // adding die(); is necessary with wp ajax 
    die(); 

} 

在您的前端文件,刪除所有形式的東西,或讓你輸入字段返回false時,它被點擊。 我假設你在no.Conflict()模式下使用jQuery。 在需要顯示響應的地方添加一個<div id="answer"></div>

<script> 
     jQuery('#contact_me input').click(function() { 

     // get form data here 
     var message = jQuery('#your_message').val(); 
     // ...and so on 

     jQuery.post(ajaxurl, { 
        action:  "send_form", 
        message: message, 
        //...and so on 

       }, function (response) { 

        jQuery('#answer').html(response); 

       }); 
     }); 
</script> 

這將通過AJAX調用PHP-功能sendForm(),執行它和與所述ID #response在div顯示echo'ed消息。你需要嗎?

要求進一步解釋。

問候 西蒙

+0

嘿,這正是我要找的,將下班後試試這個:) 感謝 – Dymond 2013-03-11 11:30:19