通过Ajax发送文本框数组值

时间:2015-01-30 07:07:02

标签: javascript php jquery arrays ajax

我试图提交形式throgh ajax。我的表单包含两个具有相同名称的文本框,以将其作为数组值。 我试图用Ajax发送这个数组文本框值。 我试过的代码如下所示。

形式

<input name="name"  value="name"/>
<input name="email[]"  value="one@gmail.com"/>
<input name="email[]"  value="two@gmail.com"/>
<input name="msg"  value="message"/>

Ajax脚本

$.ajax({
        url: "sendmail.php",
        cache: false,
        dataType: "json",
        type: "POST",
        data: {
            name: $('#ame').val(),
            email: $('[name="email[]"]').serialize(),
            msg: $('#msg').val()

        },

sendmail.php

$c_email = $_POST['email'];
foreach ( $c_emails as $cmail) {
echo $cmail
}

3 个答案:

答案 0 :(得分:1)

您应该使用.map()

email : $('[name="email[]"]').map(function () {
    return this.value;
}).get()

答案 1 :(得分:0)

试试这个,你将在下一个php脚本上获得该表格的所有数据。

var formData = $('form').serialize();
$.ajax({
    url: "sendmail.php",
    cache: false,
    dataType: "json",
    type: "POST",
    data: formData,

在您的PHP代码中

<?php
   $emails = $_POST['email'];
   foreach($emails as $email) {
       echo $email;
   }
?>

答案 2 :(得分:0)

jQuery可能对引用有点挑剔。这将构建您正在寻找的字符串:

$("div#result").html($("input[name='email[]']").serialize());

返回空字符串:

$("div#result").html($('input[name="email[]"]').serialize());

http://jsfiddle.net/n5v69bx4/

相关问题