【问题标题】:Extracting data from a form that has a list with multiple values从具有多个值的列表的表单中提取数据
【发布时间】:2018-02-08 19:20:50
【问题描述】:

感谢大家花点时间查看我的代码,不幸的是,我无法解决它,直到我查看更多代码并重新执行所有操作,以便我能够通过 PHP 找到表单的解决方案:

我的 html 表单(有些描述是西班牙语,抱歉):

<div class="mdl-textfield mdl-js-textfield">
    <select class="mdl-textfield__input" name="contactMarca" id="contactMarca">
        <option value="Selecciona">Selecciona</option>
        <option value="Acura">Acura</option>
        <option value="AlfaRomeo">Alfa Romeo</option>
        <option value="AstonMartin">Aston Martin</option>
        <option value="Audi">Audi</option>
    </select>
<label class="mdl-textfield__label" for="contactMarca"> Marca</label><br><br>
</div>
<div class="mdl-textfield mdl-js-textfield">
    <select class="mdl-textfield__input" name="contactVersion" id="contactVersion">
       <option value="Selecciona">Selecciona</option>
       <option value="Acura" data-value="ACURA ILX A-SPEC 4P L4 2.0L ABS BA QC AC GPS R18 AUT., 05 OCUP.">ACURA ILX A-SPEC 4P L4 2.0L ABS BA QC AC GPS R18 AUT., 05 OCUP.</option>
       <option value="Acura" data-value="ACURA RL AUT., 05 OCUP.">ACURA RL AUT., 05 OCUP.</option>
       <option value="Acura" data-value="ACURA RLX 4P V6 3.5L SPORTSHIFT AUT., 05 OCUP.">ACURA RLX 4P V6 3.5L SPORTSHIFT AUT., 05 OCUP.</option>
       <option value="Acura" data-value="ACURA TL AUT., 05 OCUP.">ACURA TL AUT., 05 OCUP.</option>
       <option value="Acura" data-value="ACURA TL V6 3.7L SPORTSHIFT R-18 AUT., 05 OCUP.">ACURA TL V6 3.7L SPORTSHIFT R-18 AUT., 05 OCUP.</option>

<button type="submit"  id="submit"><span>Enviar </span> <i class="fa fa-long-arrow-right"></i></button> 

基本上一切都很好,电子邮件发送信息但它没有从“数据值”发送数据

这是我的 PHP:

<?php

    $site_owners_email = 'mail@master.com'; // Replace this with your own email address
    $site_owners_name = 'Page'; // replace with your name

    $name = filter_var($_POST['contactName'], FILTER_SANITIZE_STRING);
    $email = filter_var($_POST['contactEmail'], FILTER_SANITIZE_EMAIL);
    $subject = filter_var($_POST['contactSubject'], FILTER_SANITIZE_STRING);
    $codigo = filter_var($_POST['contactCopo'], FILTER_SANITIZE_STRING);
    $phone = filter_var($_POST['contactPhone'], FILTER_SANITIZE_STRING);
    $model = filter_var($_POST['contactModel'], FILTER_SANITIZE_STRING);
    $marca = filter_var($_POST['contactMarca'], FILTER_SANITIZE_STRING);
    $version = filter_var($_POST['contactVersion'], FILTER_SANITIZE_STRING);
    $confirm = filter_var($_POST['contactConfirm'], FILTER_SANITIZE_STRING);
    $uso = filter_var($_POST['contactUso'], FILTER_SANITIZE_STRING);

    $error = "";

    if (strlen($name) < 2) {
        $error['name'] = "Please enter your name.";
    }

    if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
        $error['email'] = "Please enter a valid email address";
    }

    if (strlen($subject) < 2) {
        $error['subject'] = "Please enter a subject.";
    }

    if (strlen($codigo) < 2) {
        $error['codigo'] = "Please enter your Code.";
    }

    if (strlen($phone) < 2) {
        $error['phone'] = "Please enter your phone.";
    }

    if (strlen($confirm) < 6) {
        $error['version'] = "Por favor introduce tu Versión.";
    }

    if (!$error) {

        require_once('phpmailer/class.phpmailer.php');
        $mail = new PHPMailer();

        $mail->AddAddress($site_owners_email, $site_owners_name);
        $mail->IsHTML(true);

        $mail->From = $email;
        $mail->FromName = $name;
        $mail->Subject = $subject;
        $mail->Body = '<b>Nombre del Asegurado:</b> '. $name .'<br/><b>E-mail:</b> '. $email . '<br/><b>Codigo Postal:</b> '. $codigo . '<br/><b>Telefono:</b> '. $phone . '<br/><b>Modelo:</b> '. $model . '<br/><b>Marca:</b> '. $marca . '<br/><b>Version:</b> '. $confirm . '<br/><b>Tipo de Uso:</b><br/>' . $uso;

        $mail->Send();

        echo $theResults = <<<EOD
<!DOCTYPE HTML>
<html lang="en">
    <head>
        <!--=============== basic  ===============-->
        <meta charset="UTF-8">
        <title>Grupo Integral de Seguros | Cotizacion Autos</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
        <meta name="robots" content="index, follow"/>
        <meta name="keywords" content="Seguros"/>
        <meta name="description" content="Cotizacion Autos, A donde vayas estamos contigo."/>
        <meta property="og:title" content="Grupo Integral de Seguros | Cotizacion Autos"/>
        <meta property="og:image" content="http://giseguros.com.mx/images/LogoGIlarge-01.png"/>
        <meta property="og:url" content="http://giseguros.com.mx/"/>
        <meta name="twitter:card" content="summary" />
        <meta name="twitter:site" content="@" />
        <meta name="twitter:creator" content="@" />
        <!--=============== css  ===============--> 
        <link type="text/css" rel="stylesheet" href="css/reset.css">
        <link type="text/css" rel="stylesheet" href="css/plugins.css">
        <link type="text/css" rel="stylesheet" href="css/style.css">
        <!--=============== favicons ===============-->
        <!-- Standard Favicon--> 
        <link rel="shortcut icon" href="http://giseguros.com.mx/favicon-196x196.png">
        <link rel="apple-touch-icon-precomposed" sizes="120x120" href="http://giseguros.com.mx/apple-touch-icon-120x120.png" />
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="http://giseguros.com.mx/apple-touch-icon-152x152.png" />
        <link rel="icon" type="image/png" href="http://giseguros.com.mx/favicon-196x196.png" sizes="196x196" />
    </head>
    <body>
HTML to make prettier the result that email has been sent.
    </body>
</html>
EOD;
echo "$theResults";

    } # end if no error
    else {

        $response = (isset($error['name'])) ? "<div class='alert alert-danger'  role='alert'>" . $error['name'] . "</div> \n" : null;
        $response .= (isset($error['email'])) ? "<div class='alert alert-danger'  role='alert'>" . $error['email'] . "</div> \n" : null;
        $response .= (isset($error['subject'])) ? "<div class='alert alert-danger'  role='alert'>" . $error['subject'] . "</div> \n" : null;
        $response .= (isset($error['message'])) ? "<div class='alert alert-danger'  role='alert'>" . $error['message'] . "</div>" : null;

        echo $response;
    } # end if there was an error sending

?>

如果有很多数据,我很抱歉,但我想知道如何提取“数据价值”,因为它只是提取价值,它给了我汽车的品牌,我需要描述从我在我的 PHP 中的表单中,没有把它拧到这个 php 中,除了那个数据值问题之外,它现在可以完美地工作?

【问题讨论】:

  • 当您使用$e_content = 时,您会不断地覆盖您的电子邮件内容。您需要连接文本,如$e_content .=
  • 谢谢我已经更改了这在发送电子邮件时很有帮助,它给了我提到的所有信息$e_body = "Name $name" . PHP_EOL . PHP_EOL; $e_reply = "E-mail: $email\r\nTelefono: $tel"; $e_content = "Message:\r\n$comments\r\nModel: $model\r\nBrand: $brand\r\nVersion: $version\r\nCP: $zip\r\nType: $type" . PHP_EOL . PHP_EOL; 只是问题仍然存在,它没有给我选择列表中的值表格,我还能做什么?

标签: php jquery html email


【解决方案1】:

如果您在 $_POST 中获取值,那么一切都很好,只需更改代码中的以下几行

$e_content = "Message:\r\n$comments" . PHP_EOL . PHP_EOL;
$e_content .= "Modelo:\r\n$model" . PHP_EOL . PHP_EOL;
$e_content .= "Marca:\r\n$brand" . PHP_EOL . PHP_EOL;
$e_content .= "version:\r\n$version" . PHP_EOL . PHP_EOL;
$e_content .= "CP:\r\n$zip" . PHP_EOL . PHP_EOL;
$e_content .= "Uso:\r\n$type" . PHP_EOL . PHP_EOL;

当您执行 $e_content = 'Some Value' 时,您正在创建一个新变量并为其分配一个新值,在您的情况下,您希望发送所有信息,因此您必须将其他值附加到已创建的变量

【讨论】:

  • 您好,谢谢我已经对其进行了编辑并工作了,只是表格中的选择选项仍然不起作用,我还能做什么?这就是变化:$e_body = "Name $name" . PHP_EOL . PHP_EOL; $e_reply = "E-mail: $email\r\nTel: $tel"; $e_content = "Message:\r\n$comments\r\nModel: $model\r\nBrand: $brand\r\nVersion: $version\r\nCP: $zip\r\nType: $type" . PHP_EOL . PHP_EOL;
【解决方案2】:
     <select class="mdl-textfield__input" name="contactVersion" id="contactVersion">
           <option value="Selecciona">Selecciona</option>
           <option value="ACURA ILX A-SPEC 4P L4 2.0L ABS BA QC AC GPS R18 AUT., 05 OCUP." data-value="ACURA ILX A-SPEC 4P L4 2.0L ABS BA QC AC GPS R18 AUT., 05 OCUP.">ACURA ILX A-SPEC 4P L4 2.0L ABS BA QC AC GPS R18 AUT., 05 OCUP.</option>
           <option value="ACURA RL AUT., 05 OCUP." data-value="ACURA RL AUT., 05 OCUP.">ACURA RL AUT., 05 OCUP.</option>
           <option value="ACURA RLX 4P V6 3.5L SPORTSHIFT AUT., 05 OCUP." data-value="ACURA RLX 4P V6 3.5L SPORTSHIFT AUT., 05 OCUP.">ACURA RLX 4P V6 3.5L SPORTSHIFT AUT., 05 OCUP.</option>
           <option value="ACURA TL AUT., 05 OCUP." data-value="ACURA TL AUT., 05 OCUP.">ACURA TL AUT., 05 OCUP.</option>
           <option value="ACURA TL V6 3.7L SPORTSHIFT R-18 AUT., 05 OCUP." data-value="ACURA TL V6 3.7L SPORTSHIFT R-18 AUT., 05 OCUP.">ACURA TL V6 3.7L SPORTSHIFT R-18 AUT., 05 OCUP.</option>

</select>

你没有关闭&lt;/select&gt;

为什么你给所有选项的值都一样?

希望对你有帮助

【讨论】:

  • 谢谢 Dawud,我不得不保留 Javascript,因为表单包含 100 多个选项,我也尝试了您的选项,但 php 仍然没有发布来自电话、型号、版本和类型的信息,它更正了数据感谢您输入$e_content. 的方式还有什么可能发生?也许是 post 方法还是必须是表单中的东西?
  • @Jivanz 我添加了一些部分。请您可以尝试给我您的反馈,但我尝试了相同的代码,它在这里对我来说很好。你可以查看这个链接stackoverflow.com/questions/45510682/multiple-checkboxes/…
  • 嗨 Dawud,再次感谢,我不知道为什么仍然无法为我工作,感谢您抽出宝贵时间帮助我找到解决方案,仍然是 php 中无法识别的内容列表并获取数据值以将其添加到 php 中的邮件中,甚至电话号码都不起作用,但是名称和电子邮件工作正常,还有什么可能? Perharps 是发布时的方法
  • 嘿Dawud,你能再检查一下吗?我修复了,但我找不到将其他值“数据价值”添加到我的电子邮件的解决方案,一切都很完美,但在邮件中只是从品牌发送价值而不是描述汽车的数据跨度>
  • @Jivanz 检查我的答案
猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 2019-01-22
  • 1970-01-01
  • 2021-06-15
  • 2019-01-04
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多