将数组值推送到Ajax [JQuery / PHP / HTML]

问题描述 投票:1回答:1

我不能将我的数组的值推送到我的php文件。

脚本:

<script>
$(document).ready(function() {
  var item_code = [];

  $('#save').click(function() {
    var item_name = [];
    var item_value = [];
    var item_quantity = [];

    for (var i = 0; i < item_code.length; i++) {
      item_code.push($(this).val());
    }


    $('.item_name').each(function() {
      item_name.push($(this).val());
    });

    $('.item_value').each(function() {
      item_value.push($(this).val());
    });
    $('.item_quantity').each(function() {
      item_quantity.push($(this).val());
    });

    $.ajax({
      url: "insert2.php",
      method: "POST",
      data: {
        item_name: item_name,
        item_code: item_code,
        item_value: item_value,
        item_quantity: item_quantity,
      },
      success: function(data) {

      }

    });

</script>

每当我在搜索栏上搜索项目代码时,我都会在“item_code”中存储一个值。之后,我想在insert2.php上推送item_code []的值。

我没有收到任何错误,但系统本身已被冻结。

php jquery html
1个回答
1
投票

我猜测“item_code”变量也在代码中的其他地方全局声明,否则迭代它就没有意义了。尝试使用其他名称而不是“item_code”将其发送到“insert2.php”。

   for (var i = 0; i < item_code.length; i++) {
      item_code.push($(this).val());
   }

你不能将数据推送到你正在循环的同一个数组中,因为你永远不会到达它的末尾,除非内存限制会告诉你。声明“item_code_second”并进入:

$(document).ready(function() {
  var item_code_second = [];

并改变你的循环:

   for (var i = 0; i < item_code.length; i++) {
      item_code_second.push($(this).val());
   }

你也正在推送相同的值“$(this).val()”和item_code中的值一样多,这在名称,数量和价值方面没有任何意义和完全相同的值。 $(this)表示按下的按钮,不要忘记您处于点击事件中。

© www.soinside.com 2019 - 2024. All rights reserved.