2009-05-13 4 views
1

Я запускаю этот цикл в php, но используя функцию jquery click во время вывода. Как я могу записать, какой экземпляр $ i был нажат. Когда я использую $ (this), он возвращает id.JQuery loop - захватить значение

$ ('# 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

Это не так понятно. Там вы хотите записать его? Для каждого кадра вы используете отдельный обработчик onclick, так что вы определенно можете получить значение $ i, но я не уверен, что вы имеете в виду, записав его? –

+0

Это приложение для кадрирования изображений. Он позволяет вам выбирать различные варианты матов - когда вы выбираете другую опцию матирования - он снова загружает рамку по умолчанию. Я хотел бы сохранить последний кадр, чтобы он не возвращался обратно к умолчанию. Я полагаю, что если я сохраню значение $ I в cookie, его будет легко загрузить снова. Я новичок в PHP, поэтому, если есть еще один способ, мне это нравится. – Kauthon

+0

также, если есть что-то очевидное, что я отсутствую, не стесняйтесь. – Kauthon

ответ

0

если «кадр $ frame_id [$ я]» является идентификатором Clicked объекта, вы могли бы извлечь идентификатор с:

$(this).attr('id').replace(/[^\[]*\[([^\]]*)\]$/, '$1') 

этого будет манипулировать идентификатор и возвращать только значение в скобках.

+0

не работал точно так, как планировалось, но повел меня по пути к правильному ответу. Я просто заменил на «рамку» на «» и получил номер. Благодаря тонну. – Kauthon

0

Почему бы просто не сделать это жестко, как вы уже делали всюду в своем скрипте?

ПРИМЕЧАНИЕ: Это очень плохой дизайн ИМХО; вместо того, чтобы создавать все это для элемента EACH в вашем массиве, вы должны создать статическую JS-функцию, которая сделает все это, а затем вызовет ее с параметрами для передачи дополнительной информации.

+0

Я не кодировал его. Я пытаюсь работать с ним. – Kauthon

Смежные вопросы