我在php中运行此循环,但在输出期间使用jquery click函数。如何记录单击$ i的哪个实例。当我使用$(this)时,它返回id。
$('#pid-form')。val('$ frame_id [$ i]')实际上有我想要的数字作为值,但我不知道如何使用它或将其转换为变量我可以用。
for($i = 0; $i < $numRecords2; $i++){
$prod_id = $_SESSION['prod_array'][$frame_id[$i]];
echo"
$('#frame$frame_id[$i]').click(function() {
$('#top-left-frame').html('<img src=\"$upper_left[$i]\" alt=\"\" />');
$('#top-mid-frame').css('background-image','url($upper_middle[$i])');
$('#top-right-frame').html('<img src=\"$upper_right[$i]\" alt=\"\" />');
$('#mid-left-frame').css('background-image','url($middle_left[$i])');
$('#mid-right-frame').css('background-image','url($middle_right[$i])');
$('#bottom-left-frame').html('<img src=\"$bottom_left[$i]\" alt=\"\" />');
$('#bottom-mid-frame').css('background-image','url($bottom_middle[$i])');
$('#bottom-right-frame').html('<img src=\"$bottom_right[$i]\" alt=\"\" />');
$('#frame-select').html('$prod_id');
$('#pid-form').val('$frame_id[$i]');
$('#oa_id-form').val('$prod_id');
var frameState = $(this).attr('id');
$.cookie('frameState', frameState, { expires: 7 });
alert($.cookie('frameState') + ' was clicked.');
});
";
}
答案 0 :(得分:0)
为什么不简单地对其进行硬编码,因为您已经在脚本中的其他位置进行了硬编码?
注意:这是一个非常糟糕的设计恕我直言;您应该创建一个静态JS函数来完成所有这些操作,然后使用参数调用它以传递额外信息。而不是为数组中的EACH元素创建所有这些元素。
答案 1 :(得分:0)
如果“frame $ frame_id [$ i]”是被点击对象的id,你可以用以下内容提取id:
$(this).attr('id').replace(/[^\[]*\[([^\]]*)\]$/, '$1')
这将操纵id并仅返回括号之间的值。