Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery checbox(用作产品比较列表)_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery checbox(用作产品比较列表)

Javascript jquery checbox(用作产品比较列表),javascript,jquery,html,Javascript,Jquery,Html,我是Jquery新手,我正在努力解决以下问题:;我有一个产品列表,我想将其添加到比较列表中。用户选择产品(复选框),值存储在数组中并显示在div中 我很难做到以下几点: 限制chckArray仅存储2个值(2个产品),或限制用户选中2个以上复选框 默认情况下,Divcontainer是隐藏的,当所有复选框都未选中时,在复选框上单击显示(如果数组不为null)(删除数据追加) 在Div中显示两个选定项目的值(产品ID) 如有任何提示,敬请谅解。 HTML // checkboxes from

我是Jquery新手,我正在努力解决以下问题:;我有一个产品列表,我想将其添加到比较列表中。用户选择产品(复选框),值存储在数组中并显示在div中

我很难做到以下几点:

  • 限制
    chckArray
    仅存储2个值(2个产品),或限制用户选中2个以上复选框
  • 默认情况下,Div
    container
    是隐藏的,当所有复选框都未选中时,在复选框上单击显示(如果数组不为null)(删除数据追加)
  • 在Div
  • 中显示两个选定项目的值(产品ID)
如有任何提示,敬请谅解。 HTML

// checkboxes from loop

<input type="checkbox" value="<?php echo $res['id'];?>" class="bottomRight" id="<?php echo $res['id'];?>" title="Compare" style="float:left;"  />


<div id="container" style="display:none;"> 
<p>You have added :</p>
<ul>
<li>First Checkbox Value</li>
<li>Second Checkbox Value</li>
</ul>

</div>

您可以通过禁用剩余的not
:checked
,将chckArray限制为仅存储2个值:

var n = $('input[type=checkbox]:checked').length >= 2;  
$('input[type=checkbox]').not(':checked').attr('disabled',n);
如果
chkArray
不为空,则显示
容器,如果为空,则隐藏并删除列表:

if(chkArray.length !== 0){
    $('#container').show();        
}else{
    $('#container').hide(); 
    $('#container > ul').html('');    
}
将所选复选框显示为
  • $.each(chkArray, function(i, val) { 
       $('<li>').text(chkArray[i]).appendTo('#container > ul');               
    });
    
    $。每个(chkArray,函数(i,val){
    $(“
  • ”).text(chkArray[i]).appendTo(“#container>ul”); });

  • 您好,马克,这正是我想要实现的目标。谢谢你的帮助!!一个简单的问题,在PHP中,当传递数组或需要打印数组值时,应该是echo$chkArray[0];echo$chkArray[1](在本例中,前两个值)在Jquery中有多大不同?chkArray.toString();但是,如何实现第一和第二价值观呢?或者将其作为Post传递给PHP。如果你在那里给我任何提示。。再次感谢!如果要转换数组的一项
    toString()
    ,只需指定索引
    chkArray[1].toString()。如果要将数组传递给PHP,可以使用JSON,它是一种数据交换语言。首先需要对数组进行编码
    JSON.stringify(chkArray)
    ,然后在PHP端对其进行解码
    $chkArray=JSON\u decode($\u POST['jsondata'])
    
    $.each(chkArray, function(i, val) { 
       $('<li>').text(chkArray[i]).appendTo('#container > ul');               
    });