从具有包含多个值的列表的表单中提取数据

时间:2017-08-30 23:42:55

标签: php jquery html5 email

感谢大家花了一些时间审查我的代码,遗憾的是我无法解决它,直到我查看更多代码并重新做了所有事情,所以我能够通过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> 

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

发送数据

这是我的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

?>

所以我很抱歉,如果有大量数据,但我想知道如何才能提取&#34;数据值&#34;因为它只是提取了价值,它给了我汽车的品牌,我需要在我的PHP中使用我的表格中的描述,而不是在这个PHP中使用它,除了数据值问题之外现在还能完美运行吗?

2 个答案:

答案 0 :(得分:0)

如果你在$ _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'时,您正在创建一个新变量并为其指定一个新值。在您的情况下,您希望发送所有信息,因此您必须将其他值附加到已创建的变量

答案 1 :(得分:0)

     <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>

你没有关闭</select>

为什么你给出所有选项的相同值?

我希望它有所帮助

相关问题