【问题标题】:Changing an input value using PHP and Javascript使用 PHP 和 Javascript 更改输入值
【发布时间】:2014-05-02 21:22:32
【问题描述】:

我正在尝试为我的网站创建简单的电子邮件订阅表单。每次添加电子邮件时,我都希望输入框确认电子邮件已添加。这看起来很简单,但我找不到在输入框中动态回显答案的方法。 我知道如何使用 Javascript 更改输入值,但是一旦包含在 PHP 中,它似乎就不起作用了。

编辑:我对 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 = "myemail@email.com";
$from = "no-reply@email.com";

$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'] . ')';   
}

}    
?>

【问题讨论】:

  • 用 PHP 呼应 javascript 看起来如此优雅,这就是构建 Web 的方式。
  • 我知道这不是正确的做法,这就是我寻求帮助的原因。

标签: javascript php forms dynamic input


【解决方案1】:

在回显表单之前处理提交。然后如果邮件处理成功,当你回显输入框时,回显你的输入,属性值为=“成功!”

【讨论】:

  • 如此简单,却又如此有效。
【解决方案2】:

谢谢大家,将 PHP 放在首位并回显有效的值。我实际上使用的是占位符而不是值,所以它不可编辑。

第一次在 Stackoverflow 上提问,绝对没有对这个伟大的社区感到失望。

这是我的最终代码供参考:

<?php    
    if ( isset($_POST['SubmitButton']) ) {
        $to      = "myemail@email.com";
        $from    = "no-reply@email.com";
        $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>

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    相关资源
    最近更新 更多