根据单选按钮选择在电子邮件中发送PDF链接

时间:2016-09-04 作者:Helping Hands

我在wordpress网站上使用自定义电子邮件和表单。

事情正在进行中有两个单选按钮:

其他字段正常。

我有2个以上两种语言的PDF上传到服务器。我想发送的是使用PDF链接在电子邮件中根据语言选择的形式。

我正在尝试,但它总是发送相同的PDF链接。

Code to check data and send in email :

if(isset($_POST[\'submit\']) && isset($_POST[\'language1\'])){
  $clname=$_POST[\'clname\'];
  $clsurname=$_POST[\'clsurname\'];
  $clemail=$_POST[\'clemail\'];
  $radio = $_POST[\'language1\'];
  $fileatt1     = "http://example.com/english.pdf";
  $fileatttype = "application/pdf";
  $fileattname = "newname.pdf"; //name that you want to use to send or you can use the same name

  $headers = \'From: \'. $clname .\' <\'. $clemail .\'>\' . "\\r\\n";
  $mail = get_option(\'admin_email\');
  $subject = "Testing";


  $message = \'Name:\'.$clname.\' \'.$clsurname.\'\\n\\n
    Email:\'.$clemail.\'\\n\\n Radiovalue:\'.$radio.\'\\n\'. $fileatt;

  wp_mail($mail,$subject,$message,$headers);
            $emailsent= true;
}

Form Code

<div class="overflow-hidden">
  <form class="text-center" method="post" action="<?php echo $_SERVER[\'REQUEST_URI\']; ?>">

    <div class="col-md-6">
       <p class="tns">First Name *:</p>
       <input type="text" name="clname" placeholder="First Name" required />
    </div>
    <div class="col-md-6">
      <p class="tns">Last Name *:</p>
        <input type="text" name="clsurname" placeholder="Last Name" required />
        <input type="radio" name="language1" value="English">English 
        <input type="radio" name="language2" value="Chinese">Chinese </div>

      </div>

      <hr>
      </div>
      <div class="overflow-hidden">
      <div class="col-sm-6 col-sm-offset-3">


      <input type="submit" name="submit" value="submit" />
    </div>
  </div>
</form>
我曾尝试在ELSE条件下放置另一个PDF链接,但不起作用。我也尝试过放置2个不同的if条件,但这对我也不起作用。

1 个回复
最合适的回答,由SO网友:bynicolas 整理而成

您应该使用相同的name 属性,用于您的2个无线电输入。所以我们假设这个名字是language. 如果language 设置时,有两个选项,表示为value, 任何一个EnglishChinese.

在您发布的代码中,这主要是您的问题。您设置了$radio 变量为$_POST[\'language1\'] 但是$_POST[\'language1\']ALWAYSEnglish 因为Chinese 值由设置$_POST[\'language2\']

在表单标记中,更改radio 输入name 价值观

<div class="overflow-hidden">
  <form class="text-center" method="post" action="<?php echo $_SERVER[\'REQUEST_URI\']; ?>">

    <div class="col-md-6">
      <p class="tns">First Name *:</p>
      <input type="text" name="clname" placeholder="First Name" required />
    </div>
    <div class="col-md-6">
      <p class="tns">Last Name *:</p>
      <input type="text" name="clsurname" placeholder="Last Name" required />
      <input type="radio" name="language" value="English">English 
      <input type="radio" name="language" value="Chinese">Chinese
    </div>

    <hr>

    <div class="overflow-hidden">
      <div class="col-sm-6 col-sm-offset-3">
        <input type="submit" name="submit" value="submit" />
      </div>
    </div>
  </form>
</div>
在PHP中:

更改的引用language1language使用ternary operator 设置$fileatt. 如果$radioEnglish 将英文url输出到文件。否则输出中文url。

if(isset($_POST[\'submit\']) && isset($_POST[\'language\'])){

  $radio       = $_POST[\'language\'];
  $fileatt     = \'English\' == $radio ? "http://example.com/english.pdf" : "http://example.com/chinese.pdf" ;
  $fileatttype = "application/pdf";


  $headers = \'From:\' . $_POST[\'clname\'] . \' <\'. $_POST[\'clemail\'] .\'>\' . "\\r\\n";
  $mail = get_option(\'admin_email\');
  $subject = "Testing";


  $message = \'Name: \' . $_POST[\'clname\'] . \' \' . $_POST[\'clsurname\'] .\'\\n\\n
  Email:\'.$_POST[\'clemail\'].\'\\n\\n Radiovalue:\' . $radio . \'\\n\'. $fileatt;

  wp_mail($mail,$subject,$message,$headers);
  $emailsent= true;
}