我有一个复选框,用于存储数据库表中的值。因此,当我在页面上显示它时,它包含一组值。
<input type="checkbox" id="chkdelt[<?php echo $id; ?>]" name="chkdelt[]" value="<?php echo $id; ?>">
上面给出的是复选框代码。
我有一个弹出式窗口,显示已选中复选框的数量。
<div class="popup">
Show count here <span id="numb"></span>
<button type="button" onclick="paz(<?php echo json_encode(chkdelt); ?>);">Click</button>
</div>
我可以使用下面给出的这个javascript函数成功显示计数。
// used to show number of checked checkboxes in popup
function dumpInArray(){
var arr = [];
$('.table-responsive input[type="checkbox"]:checked').each(function(){
arr.push($(this).val());
});
return arr.length; //returns no of checked check boxes
}
$('.select_chk').click(function () {
$('#numb').html(dumpInArray()); // output of dumpInArray() written into numb span
});
我尝试将此数组传递给Javascript函数,同时单击弹出窗口内的按钮。
我的Javascript如下:
function paz(a)
{
var temp = new Array();
temp = JSON.parse(a);
for(i=0;i<temp.length;i++)
{
alert(temp[i]);
}
}
这些值不会传递给Javascript中的paz()。休息工作正常。当我单击弹出窗口中的按钮时,我想将所有选中复选框的值传递给paz()。
感谢。帮助???
答案 0 :(得分:0)
您需要将参数作为字符串传递给JavaScript函数。
您将它们作为变量传递,而变量又将变为undefined
。
要将参数作为字符串传递,请使用function_name('arg')
或function_name("arg")
。
所以在代码更改中:
<button type="button" onclick="paz(<?php echo json_encode(chkdelt); ?>);">Click</button>
到
<button type="button" onclick="paz('<?php echo json_encode(chkdelt); ?>');">Click</button>
此外,我建议您使用<input type="button" />
代替<button>
&amp;我认为如果chkdelt
是php中的变量名,那么您需要在其前面使用$
符号并使用json_encode($chkdelt)
。
希望它能帮助你..干杯:)!