繁体   English   中英

通过ajax将PHP的JQuery对象发送给PHP()

[英]JQuery object to PHP via ajax to send a mail()

因此,我试图将一个对象从jQuery函数发送到PHP脚本,以通过mail()发送它们,但是我的电子邮件始终为空,因此我认为我可能不太了解如何正确执行该操作工作

这是jQuery函数

            function sendForm() {

            $surname = $('#surname').val();
            $name = $('#name').val();
            $email = $('#email').val();
            $comment = $('#q4').val();

            $to = 'asd@efg.de'
            $subject = 'Contact Form'

            $datastring = {$surname,$name,$email,$comment,$to,$subject}

            $.ajax({
                url: 'send.php',
                type: 'post', 
                data: $datastring,
                success: function() { 
                    alert('email sent!');
                }
            });
            return false;
        }

这里是send.php

<?php
$to      = $_POST[$to];
$subject = $_POST[$subject];
$message = $_POST[$comment];
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?> 

我想念什么? 谢谢您的帮助!

编辑:我检查了$ datastring,它具有我想要的形式的所有值。 另存为对象

您必须提供数据对象名称的属性,否则将出现错误:

$datastring = {
    surname : $surname,
    name    : $name,
    email   : $email,
    comment : $comment,
    to      : 'asd@efg.de',
    subject : 'Contact Form'
};

在PHP方面,您再次通过该名称获取值:

$surname = $_POST["surname"];
$name    = $_POST["name"];
$email   = $_POST["email"];
$comment = $_POST["comment"];
$to      = $_POST["to"];
$subject = $_POST["subject"];

创建对象的方式使每个值都不undefined ,因为您没有真正的键和值,因此您需要这样做

function sendForm() {
    $datastring = {
        'surname' : $('#surname').val(),
        'name'    : $('#name').val(),
        'email'   : $('#email').val(),
        'comment' : $('#q4').val(),
        'to'      : 'asd@efg.de',
        'subject' : 'Contact Form'
    }

    $.ajax({
        url     : 'send.php',
        type    : 'post',
        data    : $datastring,
        success : function() {
            alert('email sent!');
        }
    });
    return false;
}

要获取PHP中的值,请使用字符串作为键

$_POST["subject"];

尝试改变

$datastring = {$surname,$name,$email,$comment,$to,$subject}

$datastring = {'username':$surname,'name':$name,'email':$email,'contact':$comment,'to':$to,'subject':$subject}

然后改变

$to      = $_POST[$to];

$to      = $_POST['to'];

与其余的php代码类似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM