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

时间:2014-10-08 18:56:16

标签: javascript jquery html json

我在提交我的"表格"时遇到问题与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>
&#13;
&#13;
&#13;

如您所见,当select更改时,它会添加&#34; data-info&#34;属性为div。当按下div时,它会将数据信息发送到php脚本。问题是它总是发送相同的值。但刷新后,它只发送一次,然后再次发送与第一次相同的值。很难解释,但这里是例子:让我说我改变选择到&#34; data2&#34;按下div。它发送&#34; 2&#34;。但是当我将其更改为&#34; data3&#34;,然后按div时,它仍会发送&#34; 2&#34;,而不是&#34; 3&#34;。没有缓存集或其他东西。对不起英语不好,并提前感谢:)

2 个答案:

答案 0 :(得分:0)

如果您还要使用jQuery

阅读它,请使用jQuery进行设置

更改

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

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

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

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

答案 1 :(得分:0)

您正在使用令人困惑的代码,您可以使用以下方法实现相同的目标:

<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>