将动态生成输入字段的值通过ajax传递给php

时间:2018-04-13 13:39:56

标签: javascript php

我有一个动态生成的输入字段,通过点击添加按钮生成另一个输入字段。

<div class="entry input-group col-md-12">
    <input class="form-control" name="fields[]" type="url" placeholder="Type URL" />
    <span class="input-group-btn">
        <button class="btn btn-success btn-add" type="button">
            <span class="glyphicon glyphicon-plus"></span>
        </button>
    </span>
</div>

问题是我想通过Ajax获取这些输入字段的值,但只传递第一个输入字段值?

<script>
 function launchAjax(){
    $.post{"submit.php",{
        url: $("[name='fields[]']").val(),
  },
   );
};

不知道如何修复它如果我确实得到了这个修复,我也不知道如何在PHP中处理它。谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

您需要使用引号包装该选择器: [name='fields[]']

&#13;
&#13;
console.log($("[name='fields[]']").val())
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="fields[]" value="Ele from SO">
&#13;
&#13;
&#13;

答案 1 :(得分:1)

jQuery attribute selector必须遵循下一个规则

  
      
  • 单引号内的双引号:$(&#39; a [rel =&#34; nofollow self&#34;]&#39;)
  •   
  • 双引号内的单引号:$(&#34; a [rel =&#39; nofollow self&#39;]&#34;)
  •   
  • 在单引号内转义单引号:$(&#39; a [rel = \&#39; nofollow self \&#39;]&#39;)
  •   
  • 在双引号内转义双引号:$(&#34; a [rel = \&#34; nofollow self \&#34;]&#34;)
  •   

在之前的jQuery版本中,选择器不带引号(更多细节 - https://github.com/jquery/jquery/issues/2824

修复您的问题(只需添加引号)

1) $("[name=\"fields[]\"]")
2) $('[name=\'fields[]\']')
3) $("[name='fields[]']");
4) $('[name="fields[]"]"');