Json提交相同的数据直到刷新

Json submiting same data until refresh

本文关键字:刷新 数据 提交 Json      更新时间:2023-09-26

我在用json提交"表单"时遇到问题。它不是传统的形式,我现在会发布一个代码:

$('#select').on('change', function() {
      document.getElementById("info").setAttribute("data-info", this.value);
    })
    $('#info').on('click', function() {
      var id = $(this).data('info');
      add(info);
    });
    function add(info) {
      $.ajax({
        type: 'get',
        cache: false,
        contentType: content_type,
        beforeSend: function(xhr) {xhr.overrideMimeType(content_type);},
data: {'action': 'info_add', 'info': info },
        url: sitepath + 'info/all',
        success: function() { update(); }
      });
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <select id="select">
          <option value="1">data1</option>
          <option value="2">data2</option>
          <option value="3">data3</option>
          <option value="4">data4</option>
        </select>
    <div id="info">Button</div>

正如您所看到的,当select被更改时,它会向div添加"data-info"属性。当div被按下时,它将数据信息发送到php脚本。问题是它总是发送相同的值。但在刷新后,它只会一次又一次地发送与第一次相同的值。这很难解释,但这里有一个例子:假设我将select更改为"data2"并按下div。它发送"2"。但是,当我将其更改为"data3",并按下div时,它仍然发送"2",而不是"3"。没有缓存集或其他什么。抱歉英语不好,提前感谢:)

如果您也要使用jQuery 读取jQuery,请使用jQuery进行设置

更改

document.getElementById("info").setAttribute("data-info", this.value);

$"#info").data("info", this.value);

仍然想知道,当你不只是按需读取价值时,为什么要使用数据atrrbutes。

add($('#select').val());

您正在使用令人困惑的代码,您可以使用实现相同的功能

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select id="select">
      <option value="1">data1</option>
      <option value="2">data2</option>
      <option value="3">data3</option>
      <option value="4">data4</option>
    </select>
<div id="info">Button</div>

<script>
    $('.product__cart, .stock-product__cart').on('click', function() {
        var info = $('#select').val();
        $.ajax({
        type: 'get',
        cache: false,
        data: {'action': 'info_add', 'info': info },
        url: sitepath + 'info/all',
        success: function() { update(); }
      });
    });
   </script>