0

我通过输入字段和选择元素进行了 ajax 联系,但它没有给出应有的结果。

HTML 表单代码(名称作为输入,iphone 作为选择元素)

 <div id="contact_form">
    <form name="contact" method="post" action="">Name
        <input type="text" name="name" id="name" />Iphone
        <select name="iphone" id="iphone">
            <option value="Iphone 4" selected>Iphone 4</option>
            <option value="Iphone 4S">Iphone 4S</option>
            <option value="5">Iphone 5</option>
        </select>
        <input type="submit" name="submit" class="button" id="submit_btn" value="Send"
        />
    </form>
</div>

JS代码

   $(function () {
       $('.error').hide();
       var dataString = 'name=' + name + '&iphone=' + iphone;
       $.ajax({
           type: "POST",
           url: "send.php",
           data: dataString,
           success: function () {
               $('#contact_form').html("<div id='message'></div>");
               $('#message').html("<h2>Contact Form Submitted!</h2>")
                   .append("<p>We will be in touch soon.</p>")
                   .hide()
           }
       });
       return false;
   });

PHP (send.php) 代码

<?PHP
$name = $_POST['name'];
$iphone = $_POST['iphone'];

$email="my@mail.com";
$from="anyone@mail.com";

$subject="Contact Email";
$headers = "Content-type: text/html; charset=windows-1256\r\n";
$headers .= "From: $from\r\n";

$mailtext="name : $name - Iphone : $iphone";

mail($email,$subject,$mailtext,$headers);
?>

当我将 from 与任何人的名字一起使用时的结果

Name : anyone - Iphone : [object HTMLSelectElement]

[object HTMLSelectElement]这是错误 似乎选择元素不起作用并且没有传递其选定的值

所以有什么想法吗?~ 谢谢

4

2 回答 2

1

我稍微修改了您的代码,我所做的是在您的表单上附加了一个提交处理程序,阻止了默认操作,这是重要的部分。我序列化你的表单的内容。试试这个,告诉我这是怎么回事。我通常会像这样提交我的 ajaxified 表单。虽然我不确定这是否是一个好习惯,但你应该试试这个。

   $(function () {

        $('.error').hide();
        $('form[name=contact]').submit(function(e){
            e.preventDefault();
            var form_data = $(this).serialize();        
            $.ajax({
                type: "POST",
                url: "send.php",
                data: form_data,
                success: function () {
                    $('#contact_form').html("<div id='message'></div>");
                    $('#message').html("<h2>Contact Form Submitted!</h2>")
                        .append("<p>We will be in touch soon.</p>")
                        .hide()
                }
            });
        });
    });
于 2012-12-31T08:54:39.057 回答
0

确保您获得 iPhone 的价值,如下所示:

var iphone = $("#iphone").val();

$.post对于你正在做的事情会更优雅......

$.post("send.php", { name: name, iphone: iphone },
   function(data) {
     alert("Data Loaded: " + data);
   });
于 2012-12-30T23:43:09.383 回答