javascript - 使用 Ajax 将带有字母数字键的数组发送到 PHP 脚本

标签 javascript php jquery arrays ajax

我需要从 ajax 发送到 php 的字母数字数组中接收键和值的名称。

来自这里:

<input class="input" name="one" value="1" onchange="myFunction()">        
<input class="input" name="two" value="2" onchange="myFunction()">   
<input class="input" name="three" value="3" onchange="myFunction()"> 

从循环中解析

{% for x in y %}
   <input class="input" name="{{ x.k }}" value="{{ x.v }}" onchange="myFunction()">
{% endfor %}

我需要 print_r() 这样的东西:

Array
(
    ['one'] => 1,
    ['two'] => 2,
    ['three'] => 3,
)

如果我这样做:

 function myFunction() {
    var elementy = document.getElementsByClassName('input');
    var data = {};    
    var key = elementy[0].name;
    var value = elementy[0].value;
    data = { key: value};

    $.ajax({
           url: "{{ path('test') }}",
           type: "POST",
           data: {data:data} ,
    }); 
  }

print_r($data) 返回:

Array
(
    [key] => 1
)

如果我这样做:

function myFunction() {
    var elementy = document.getElementsByClassName('input');
    var data = {};    
    data = {elementy[0].name : elementy[0].value};

    $.ajax({
           url: "{{ path('test') }}",
           type: "POST",
           data: {data:data} ,
    });   
}

Uncaught SyntaxError: Unexpected token [ 在此行 data = {elementy[0].name : elementy[0].value};

我需要做这样的事情:

function myFunction() {
    var data = []; 
    var elementy = document.getElementsByClassName('input');

    for (var i = 0; i < elementy.length; i++){ 
        data[elementy[i].name] = elementy[i].value;
    }

    $.ajax({
      url: "{{ path('test') }}",
      type: "POST",
      data: {data:data}
    });   
}

但没有语法错误Uncaught SyntaxError: Unexpected token [

最佳答案

如果您在字段周围有一个 form 元素,最简单的方法是 serialize形式:

data: $('form').serialize()
         ^^^^ if you have more forms, address it by its ID or something similar

如果你没有表格,你也可以使用:

data: $('.input').serialize()

as serialize 也可用于处理单个表单控件的选择。

关于javascript - 使用 Ajax 将带有字母数字键的数组发送到 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942029/

相关文章:

javascript - 单击链接提交过滤器表单

javascript - 在 javascript 中加载 jQuery/ajax

javascript - 找到最左边div的最有效方法?

javascript - 比较用 ASP 编写的 html 实体和 JS 读取的 html 实体

php - node.js 与 Apache PHP 一起运行?

javascript - 未捕获的类型错误 : response is not a function

javascript - 服务 promise 返回处理过的数据以实现组件的另一个 promise

javascript - 在包含相同 ID 的元素中输入 JSON 数据 - 故障排除

javascript - 使用 stopInterval 停止闪烁(jQuery 插件)

php:如何在这个结构中实现命名空间