创建具有多个结果的php表单

时间:2012-06-30 23:51:29

标签: php forms email drop-down-menu

此图片有望解释我的问题enter image description here

2 个答案:

答案 0 :(得分:2)

我今天早些时候做过这样的事情。

<?php
    $email = "myemail@nig.com"; // your email
    $subject = "A cool subject!"; // any subject for your email
    $message = ""; // all of your form data
    $header = 'MIME-Version: 1.0' . "\r\n" .
        'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
        "From: 'MyForm' <noreply@mysite.com>" . "\r\n";
    $mail_sent = mail($email, $subject, $message, $header);
    echo $mail_sent ? /*mail sent true*/
                             "<script type='text/javascript'>
                              alert('Message sent!');
                              </script>"
                    : /*mail sent false*/
                             "<script type='text/javascript'>alert('Message failed to send...');</script>";
?>

今天有人用my question告诉我,只要你只是通过电子邮件发送给自己,就不需要忘记输入。

答案 1 :(得分:0)

如果不详细了解机制,这个问题非常复杂。希望至少有一些指示可以让你开始。

首先,为了操作加载后页面上显示的内容,您将不得不使用Javascript。我建议使用jQuery之类的库来让自己更轻松。以下是我将如何做到这一点:

提供所有特定于选择的表单字段/表格行/任何类,例如form_websites,用于选择网站时应显示的字段。所有这些类都应该在带有display:none属性的css文件中定义,以便它们默认隐藏。

使用jQuery,add a change handler将表单中的选择框change the display value恢复正常。在您的脚本中,您还需要跟踪之前选择的选项,以便您可以将其显示值更改为隐藏。使用jQuery,您可以实际获得所需的功能,根据需要设置“打开”和“关闭”字段的动画,您可能还想查看jQueryUI的accordion widget之类的内容。 和/或hide effectshow effect

提交表单时,在PHP代码中,您需要进行任何合理的转义和/或检查,以确保您没有在用户提交的数据中嵌入恶意代码。例如,如果字段应该是电话号码,请使用类似preg_match("/^\[\\d\\s+\\-\\(\\)\]{1,20}$/",$_POST\["phone_number"\])的检查,以确保用户提交了合法值。如果他们没有,请根据需要忽略或向用户显示错误页面。请记住:对于一个肯定的断言(即“它应该适合这种模式”)而不是一个否定断言(即“它不应该”),检查一个值是 MUCH 更容易和更安全有这些字符“)。如果您发现自己正在测试注入的HTML标记,javascript代码等,那么您可能做错了,但您可能不得不求助于自由格式的文本字段。

总之,就像我说的那样,你要做的事实上是复杂的。具有这种程度的互动的网站不容易编写,但是,嘿,这就是为什么网页设计师赚大钱的原因。 ;)