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(){...});
Осталась еще одна проблема. Код - тот же.
При загрузке страницы у меня для выбранного элемента устанавливается класс 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 добавляется.
Спасибо, ваш вариант сработал.
Только если прописывать одну функцию, без $(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) Лена написал(а):
Спасибо, теперь все в порядке.