【问题标题】:send textbox array values throgh Ajax通过 Ajax 发送文本框数组值
【发布时间】:2015-01-30 15:17:11
【问题描述】:

我正在尝试通过 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
}

【问题讨论】:

    标签: javascript php jquery arrays ajax


    【解决方案1】:

    你应该使用.map()

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

    【讨论】:

      【解决方案2】:

      试试这个,你将在下一个 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;
         }
      ?>
      

      【讨论】:

        【解决方案3】:

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

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

        这将返回空字符串:

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

        http://jsfiddle.net/n5v69bx4/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-10-28
          • 2012-09-08
          • 2013-01-09
          • 2017-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多