[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: JQuery.Передать значение динамического hiddena
Лена
В цикле выводятся формы:

while($row = $rs->FetchRow()){

$list .='<div class="events_' . $active . '" id="ev_status">
<form action="" method="post">
<div id ="show_events"><a href="">'
. $row[1] . '</a></div>
<input type="hidden" value="'
. $row[0] . '" name="type_' . $row[0] . '" id="type_' . $row[0] . '">
</form>
</div>'
;
}


При клике по ссылке с помощью ajax-запроса надо передать на сервер значение hidden-поля с name="type_' . $row[0] . '"
Я делаю это так:

$(document).ready(function(){

$("div[id='show_events']").click(function()
{
$.post(pageid,
{ 'action':'show',
'event': $("#type").val(),
'rand':Math.random()
},
function(data)
{
alert(data);
});
return false;
});
});


Что записать вместо 'event': $("#type").val(), чтобы мне получить значение поля, название которого динамическое?



Спустя 36 минут, 48 секунд (2.08.2011 - 12:37) redreem написал(а):
click(function()

замените на
click(function(this)


'event': $("#type").val(),

замените на
'event': this.getElementsByTagName('input')[0].value,


возможно мелкие синтаксические недочеты - но смысл таков.

Спустя 1 час, 17 минут, 6 секунд (2.08.2011 - 13:54) ИНСИ написал(а):
Лена можете так попробовать:

function showEvents(id) {
$.post(pageid, { 'action' : 'show', 'event' : $("#type_" + id).val(), 'rand' : Math.random() }, function(data) {
alert(data);
});
return false;
}

while($row = $rs->FetchRow()){
$list .='
<div class="events_'
. $active . '" id="ev_status">
<form action="" method="post">
<div id="show_events">
<a href="javascript:showEvents(
\''.$row[0].'\')">'.$row[1].'</a>
</div>
<input type="hidden" value="'
.$row[0].'" name="type_'.$row[0].'" id="type_'.$row[0].'">
</form>
</div>
'
;
}

Спустя 56 минут, 19 секунд (2.08.2011 - 14:51) Лена написал(а):
INSIDIOUS
Спасибо, ваш вариант сработал.
Только если прописывать одну функцию, без $(document).ready(function(){...});

Осталась еще одна проблема. Код - тот же.

while($row = $rs->FetchRow()){

if($event == $row[0]) $active = 'active';
else $active = 'passive';

$list .='<div class="events_' . $active . '" id="ev_status">
<form action="" method="post">
<div id ="show_events"><a href="javascript:showEvents(
\''.$row[0].'\')">' . $row[1] . '</a></div>
<input type="hidden" value="'
. $row[0] . '" name="type_' . $row[0] . '" id="type_' . $row[0] . '">
</form>
</div>'
;
}


При загрузке страницы у меня для выбранного элемента устанавливается класс events_active, для всех остальных - events_passive. После ответа сервера, где у меня сейчас alert(data); мне надо сделать следующее:
удалить класс у активного и добавить класс events_active к другому элементу, выбранному.
Что-то типа этого:
$.post(pageid, { 'action' : 'show', 'event' : $("#type_" + id).val(), 'rand' : Math.random() }, function(data) {
$(\"#ev_status\").removeClass('events_active');
$(\"#ev_status\").addClass('events_active');
$(\"#event\").empty();
$(\"#event\").html(data);



});
Но у меня почему-то у активного класс не удаляется, хотя к выбранной ссылке класс events_active добавляется.

Спустя 28 минут, 20 секунд (2.08.2011 - 15:19) ИНСИ написал(а):
Цитата
Только если прописывать одну функцию, без $(document).ready(function(){...});

:)

попробуйте так:
function showEvents(id) {
$.post(pageid, { 'action' : 'show', 'event' : $("#type_" + id).val(), 'rand' : Math.random() }, function(data) {
$(".events_active").removeClass('events_active').addClass('events_passive');
$("#ev_status_" + id).removeClass('events_passive').addClass('events_active');
});
return false;
}


while($row = $rs->FetchRow()){
$list .='
<div class="events_'
. $active . '" id="ev_status_'.$row[0].'">
<form action="" method="post">
<div id="show_events">
<a href="javascript:showEvents(
\''.$row[0].'\')">'.$row[1].'</a>
</div>
<input type="hidden" value="'
.$row[0].'" name="type_'.$row[0].'" id="type_'.$row[0].'">
</form>
</div>
'
;
}

Спустя 1 час, 4 минуты, 20 секунд (2.08.2011 - 16:23) Лена написал(а):
Спасибо, теперь все в порядке.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.