将数据添加到dataString并将其传递给ajax数据

时间:2015-11-02 08:53:57

标签: jquery

<script>    
$(document).ready(function(){
    $(".check").click(function(){
        $("input:checkbox[class=check]:checked").each(function () {
            //alert($(this).val());
            //alert($(this).attr("id"));
            var key = $(this).val();
            var value = $(this).attr("id");
            alert(key'='+value);

            //alert(value); 
            //var dataString = key='+'value;
            //alert(dataString);

        });
        //alert(dataString);
    });
});
</script>

上面显示的是我的代码,我想以key = value的格式将字符串传递给ajax数据并将其接收到php $ _POST [&#39; key&#39;]变量

$.ajax({
type: "POST",
url: url,
data: dataString,
cache: false,
dataType: "html",

请有人告诉我如何做到这一点。问题是将数据连接到dataString中。

1 个答案:

答案 0 :(得分:0)

使用此:

var key   = $(this).val(),
    value = $(this).attr("id"),
    dataString = {};
    dataString[key] = value;

由于ajax data属性可以接受{ key : value, key : value,.... }

之类的对象

已更新。

好像你无法赶上这个例子,这里我为你做了一个例子, 假设这是我们的HTML:

<input type="checkbox" value="a" id="aa" checked/>a
<input type="checkbox" value="a1" id="aaa" checked/>a1
<input type="checkbox" value="a2" id="aaaa" checked/>a2
<input type="checkbox" value="a3" id="aaaaa" />a3
<button>Click</button>

这是我们的JS:

$('button').click(function () {
  // this must be define on the outside of each
  var dataString = {};
  $(':checkbox:checked').each(function () {
    var key = $(this).val();
    var value = $(this).attr('id');
    dataString[key] = value;
  });
  // open console to see the actual result
  console.log(dataString);
  // here you can make ajax request and use
  // dataString as parameter like your current code
});

这是预期结果Object {a: "aa", a1: "aaa", a2: "aaaa"},这是DEMO

稍后在PHP页面中,只需通过以下方式检索它:

$_POST['a']; // <-- aa
$_POST['a1']; // <-- aaa
$_POST['a2']; // <-- aaaa