【发布时间】:2019-11-02 20:40:36
【问题描述】:
在我的网站中,我使用 php 来处理联系/订阅。表单很简单,有两个单选按钮可以控制用户是想“订阅”还是“联系”我。在后一种情况下,我希望出现另一个“消息”框。这是我目前所拥有的:
在contact.php:
<?php include('form_process.php'); ?>
<html>
<head>
...
...
<div class="blockform">
<h2> Contact/Subscribe </h2>
<div class="container" >
<form id="contact" action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
<label class="label">
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="subscribe") echo "checked";?>
value="subscribe"> SUBSCRIBE
<input type="radio" name="gender" style="margin-left:2em"
<?php if (isset($gender) && $gender=="contact") echo "checked";?>
value="contact"> CONTACT
</label>
<label class="label" for="name">Name: *</label>
<fieldset>
<input class="w-input input" placeholder="Your Name" type="text" name="name" value="<?= $name ?>" tabindex="1" required autofocus>
<span class "error"><?= $name_error ?></span>
</fieldset>
<label class="label" for="email">Email address: *</label>
<fieldset>
<input class="w-input input" placeholder="Your Email Address" type="Email" name="email" value="<?= $email ?>" tabindex="2" required>
<span class "error"><?= $email_error ?></span>
</fieldset>
<label class="label" for="field" <?php if ($gender == 'subscribe'){?>style="display:none"<?php } ?>> Message:</label>
<fieldset>
<textarea class="w-input input" <?php if ($gender == 'subscribe'){?>style="display:none"<?php } ?> id="field" placeholder="Enter your message" name="message" value="<?= message ?>" tabindex="3" required></textarea>
<button class="w-button button-link button-right" name="submit" type="submit" id="contact-submit" data-submit="Please wait...">SUBMIT</button>
<fieldset> </fieldset>
</form>
</div>
</div>
在form_process.php 中,我有常用代码来处理单击“提交”按钮时发生的情况。我遇到的问题是,为了使隐藏/显示消息框的代码正常工作,考虑到单选按钮的实际值,需要重新加载页面。但是单击单选按钮不会触发任何事情。我尝试添加一个onclick javascript 函数来重新加载页面,但这没有考虑我按下的单选按钮的实际值。这似乎是一个简单的问题,但我找不到解决方案。
【问题讨论】:
-
您的意思是获取元素的名称并以编程方式隐藏它们?
-
是的,使用
onchange事件,获取单选按钮的状态,并使用它在 Javascript 中显示或隐藏消息框。 -
这是一个非常相似的问题:stackoverflow.com/questions/9525282/…
-
更改复选框时,后端没有任何变化。因此,当您重新加载页面时,该复选框被选中的信息应该来自哪里。您可能想提交然后重新加载。
标签: php html radio-button