2014-05-02 145 views
-1

我正在嘗試爲我的網站創建簡單的電子郵件訂閱表單。每次添加電子郵件時,我都希望輸入框確認電子郵件已添加。這看起來很簡單,但我找不到在輸入框中動態回顯答案的方式。 我知道如何用Javascript改變輸入值,但它似乎並沒有工作,一旦包含在PHP中。使用PHP和Javascript更改輸入值

編輯:我不是很熟悉PHP。我知道我不應該在我的函數中包含Javascript,它只是我想要實現的一個例子。

有沒有更簡單的方法來做到這一點?

謝謝!

<div id="email_form"> 
    <form action="" method="post"> 
    <input name="email" class="email" type="text" placeholder="Subscribe" id="emailinput"><button type="submit" name="SubmitButton" class="btn_email"><b>&gt;</b></button> 
    </form> 
    </div> 


    <?php  
if(isset($_POST['SubmitButton'])){ //check if form was submitted 

$to = "[email protected]"; 
$from = "[email protected]"; 

$headers = "From: " . $from . "\r\n"; 

$subject = "New subscription"; 
$body = "New user subscription: " . $_POST['email']; 


if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) 
{ 
    if (mail($to, $subject, $body, $headers, "-f " . $from)) 
    { 
     echo '<script type="text/javascript">'; 
     echo 'var elem = document.getElementById("emailinput");'; 
     echo 'elem.value = "Submited!";'; 
     echo '</script>'; 
    } 
    else 
    { 
     echo 'It works but There was a problem with your e-mail (' . $_POST['email'] . ')'; 
    } 
} 
else 
{ 
    echo 'It kinda works but there was a problem with your e-mail (' . $_POST['email'] . ')'; 
} 

}  
?> 
+2

與PHP相呼應的JavaScript似乎只是如此優雅,它的網站應該建的方式。 – adeneo

+0

我知道這不是正確的做法,這就是爲什麼我要求幫助。 – Skaddict

+0

[**丁,我們活着服務**](http://jsfiddle.net/3T2b6/) – adeneo

回答

1

在您回覆表單之前處理您的提交。然後,如果電子郵件處理成功,當您回顯輸入框時,請使用屬性value =「Success!」回顯您的輸入。

+0

這麼簡單,但非常有效。 – developerwjk

0

謝謝大家,首先把PHP放在首位,並回應工作價值。我實際上使用佔位符而不是值,所以它不可編輯。

第一次問一個關於Stackoverflow的問題,絕對不會讓那個偉大的社區感到失望。

這裏是我最後的參考代碼:

<?php  
    if (isset($_POST['SubmitButton'])) { 
     $to  = "[email protected]"; 
     $from = "[email protected]"; 
     $headers = "From: " . $from . "\r\n"; 
     $subject = "New subscription"; 
     $body = "New user subscription: " . $_POST['email']; 
     $message = ""; 
     $value = ""; 

     if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      if (mail($to, $subject, $body, $headers, "-f " . $from)) { 
       $value = "Submited!"; 
      } else { 
       $value = "Invalid Email"; 
      } 
     } else { 
       $value = "Invalid Email"; 
     } 
    }  
?> 

<div id="email_form"> 
    <form action="" method="post"> 
     <input name="email" class="email" type="text" id="emailinput" placeholder="<?php echo $value; ?>" /> 
     <button type="submit" name="SubmitButton" class="btn_email"> 
      <b>&gt;</b> 
     </button> 
    </form> 
</div>