php - ajax将所有输入自动发送为数组

时间:2018-04-17 14:17:51

标签: javascript php arrays ajax automation

我有一张经常会改变的表格。 每次表单发生变化时,我都会尝试找到不编辑AJAX调用的解决方案。

例如:

FORM:

<form>
    <label>RED</label>
    <input type="text" id="RED"><br>
    <label>BLUE</label>
    <input type="text" id="BLUE"><br>
    <label>YELLOW</label>
    <input type="text" id="YELLOW"><br>
    <label>ORANGE</label>
    <input type="text" id="ORANGE"><br>
    <label>PINK</label>
    <input type="text" id="PINK"><br>
    <label>GREEN</label>
    <input type="text" id="GREEN"><br>

    <input type="submit" name="submit">
</form>

AJAX CALL:

<script type="text/javascript">

$(document).on("click", ".fiche_client--btn--actualiser", function(e){   
  e.preventDefault();

    // Informations Personnelles
    var RED = $('#RED').val();
    var BLUE = $('#BLUE').val();
    var YELLOW = $('#YELLOW').val();
    var ORANGE = $('#ORANGE').val();
    var PINK = $('#PINK').val();
    var GREEN = $('#GREEN').val();

  $.ajax({
    type:'POST',
    data:{
        RED:RED,
        BLUE:BLUE,
        YELLOW:YELLOW,
        ORANGE:ORANGE,
        PINK:PINK,
        GREEN:GREEN,
        },
    url:'/url/colors.php',
    success:function(data) {                
      if(data){
        alert('Pocket!');
      }else{
        alert('Update failed');
      }
    }
  });
});

</script>

我正在尝试自动执行以下过程:

1 / AJAX的调用了解有多少<input>,将它们自动放在javascript中的var中,并自动放在ajax部分的data中。

2 / ajax(/url/color.php)调用的脚本将结果作为数组获取,如[RED] => input's content [BLUE] => input's content [YELLOW] => input's content(等等......)

在php中它是可行的还是完全不可能的?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,jQuery中肯定存在这样的问题:它被称为.serialize()。它将获取表单中的所有输入并从中创建查询字符串:

$(document).on("click", ".fiche_client--btn--actualiser", function(e){   
  e.preventDefault();

    // Informations Personnelles
    let data = $("form").serialize();

  $.ajax({
    type:'POST',
    data: data,
    url:'/url/colors.php',
    success:function(data) {                
      if(data){
        alert('Pocket!');
      }else{
        alert('Update failed');
      }
    }
  });
});