【问题标题】:posing an array from jQuery to php从 jQuery 到 php 构成一个数组
【发布时间】:2017-10-02 08:02:00
【问题描述】:

我昨天发布了一个较小的问题,并展示了如何执行此操作,但它不起作用,用户从未回复我,我已经为同一个问题工作了几个小时。

我正在尝试将一个复选框数组从 jQuery 发布到 php,当我运行我的代码时似乎什么也没发生,当我尝试 var_dump($_POST) 这就是我得到的全部

【问题讨论】:

  • 对于初学者来说,复选框数组在哪里?我所看到的只是 5 个没有值的隐藏输入。
  • 请不要因为一个人没有立即返回而提出新问题。
  • 哎呀发错了,等一下
  • 我在您的提交按钮中没有看到任何 .submit-button 任何类
  • 你能显示myindex.php页面的正确代码吗

标签: php jquery html arrays


【解决方案1】:

使用this question作为参考,看来jQuery对数组处理的不太好。您可以从接受的答案中使用 to sn-p,它应该可以正常工作。

serialize().replace(/%5B%5D/g, '[]')

【讨论】:

    【解决方案2】:
    • 将提交更改为按钮或更好地使用表单的提交事件
    • 为什么是数据类型 html?
    • 您的 php 似乎对序列化数据没有反应,而是返回一个按钮...

    在这里试试我的代码:http://plungjan.name/SO/sport.php

    我不会解开复选框数组 - 这取决于你

    <?PHP
    if (isset($_POST['saved'])) {
      echo "saved"; exit(0);
    }
    else if (isset($_POST['Submit'])) {
      echo var_dump($_POST["sport"]); exit(0);
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Sports quiz</title>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
    $(function() {
      $('#myForm').on("submit", function(ev) {
        ev.preventDefault(); // cancel submit
        var $form = $(this);
        if ($("[type=checkbox]:checked").length ==0) {
          alert("Please check one or more");
          return false;
        }
        var formData = $form.serializeArray();
        formData.push({name:"Submit",value:"submit"}); // note I changed the name from submit to Submit
        $.post('sport.php',formData, function(data) {
          console.log("Data",data);
          if (confirm('You want to save \n' + data + ' as your sport?')) {
            formData = $form.serializeArray();
            formData.push({name:"saved",value:"saved"});
            $.post('sport.php',formData,function(data) {
              console.log("Saved Data",data);
            });
          }
        });
      });
    });
    </script>
    </head>
    <body>
    
    
    <form id="myForm">
      <input type="checkbox" name="sport[]" value="Football">Football<br>
      <input type="checkbox" name="sport[]" value="Rugby">Rugby<br>
      <input type="checkbox" name="sport[]" value="Golf">Golf<br>
      <input type="checkbox" name="sport[]" value="Basketball">Basketball<br>
      <br> <input type="submit" class="btn btn-info" name="Submit" value="submit">
    </form>
    </body>
    </html>
    

    【讨论】:

    • 还是不开心
    • 什么意思?
    • 当我运行控制台时没有出现错误
    • 我做了一个 var_dump($_POST) 并得到 array(1) { ["save"]=> string(11) "Save Result" }
    • 试过了,但没有运气,我没有发布的代码中有一个 var_dump
    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2011-07-17
    • 1970-01-01
    相关资源
    最近更新 更多