我有一个包含PHPlot图像的php页面,我想添加一个按钮,将数据值打印到一个新窗口(或警报屏幕,由于数组大小不合适(> 10k值))但我不太确定它会如何起作用。
到目前为止,我有以下脚本块:
$('.XY').click(function() {
var mz_array = <?php echo json_encode($mz_array) ?>;
var int_array = <?php echo json_encode($int_array) ?>;
for (var i = 0; i < mz_array.length; i++) {
// This is obviously not what I want, it is just here to demonstrate the alert idea
//alert(mz_array[i] - TAB - int_array[i]);
// The below idea has my preference
//window.open( /* printf(mz_array[i] + "\t" + int_array[i] + "\n" */ );
}
});
我很想知道如何做到这一点的聪明方法。
PS:1和2下的陈述是基于我有限的知识,我很可能是错的。
答案 0 :(得分:1)
替代解决方案(不要求数组大小相同)
$(function() {
$('.XY').click(function() {
var mz_array = <?php echo json_encode($mz_array) ?>;
var int_array = <?php echo json_encode($int_array) ?>;
var output = mz_array.map( function(val, idx) {
return (val + "\t" + (int_array[idx] || "") );
});
var disp = window.open('','','width=400,height=150');
$(disp.document.body).text( output.join("\t") );
});
});
基本上,这会将结果合并到一个数组中,然后提醒结果。 但是,这种数据处理应该可以在PHP的后端完成,并且返回具有更有用结构的对象可能更有用,例如:
[{ mz: 'abc', int: 1 }, { mz: 'def', int: 2 }, { mz: 'ghi', int: 13 }, ...]
假设两个数组的长度相同:
$(function() {
$('.XY').click(function() {
var mz_array = <?php echo json_encode($mz_array) ?>;
var int_array = <?php echo json_encode($int_array) ?>;
var output = [];
for (var i=0; i < (mz_array.length + int_array.length); i++ ) {
output.push ( i%2 ? int_array[i] : mz_array[i] );
}
var disp = window.open('','','width=400,height=150');
$(disp.document.body).text( output.join("\t") );
});
});