[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: почему блок в цикле не видит стиля от jquery?
skolozhabskiy
добрый день!

задача: нужно поменять стиль элемента в цикле перебора записей из базы данных при их выводе. вроде задача не сложная, но почему-то не видит в такой конструкции элемент jquery.


while ($row = mysql_fetch_assoc($result)) { // здесь все отлично!!!
........

$value = $row['value']; // принимает значения или 1 или 0 (целочисленные!) - здесь все также правильно
if ($value == 1) {
$str_value = $_SESSION['value1']; // $_SESSION['value1'] = "это единица"
?><script type="text/javascript">$(function(){ $('#block').css('color','#329a1c'); });</script><?
}
else {
$str_value = $_SESSION['value2']; // $_SESSION['value2'] = "это ноль"
?><script type="text/javascript">$(function(){ $('#block').css('color','#ff0000'); });</script><?
}

echo '<p id="block"><span style="font-weight:bold; font-size:12px;">'.$str_value.'</span></p>';

// echo '<p id="block" style="font-weight:bold; font-size:12px;">'.$str_value.'</p>'; - так тоже ничего не меняется

}


значение $str_value - меняет нормально и правильно, а вот цвет выводимого текста ($str_value) не видит. в первом цикле независимо от значения $value (0 или 1) окрашивает значение в #329a1c, а остальные черным цветом по умолчанию.

можно конечно поставить строку вывода в условие проверки, но хотелось бы на jquery.

подскажите, пожалуйста, в чем моя ошибка.

спасибо



Спустя 50 минут, 28 секунд (7.06.2011 - 13:02) skolozhabskiy написал(а):
может кто-то из профессионалов посоветует что-то?

спасибо

Спустя 41 минута, 48 секунд (7.06.2011 - 13:44) Renden написал(а):
skolozhabskiy
Твоя ошибка думаю в том что id="block" неуникален, тут надо уникальное значение, тк когда у тебя цикл бежит он N количество раз перезаписывает стиль в 1 и тот-же див, и в итоге выводит последний.

<script type="text/javascript">$(function(){ $('#block<?php echo $row['id'];?>').css('color','#ff0000'); });</script>

echo '<p id="block'.$row['id'].'">...';


PS проще былоб сделать так т.е:

if ($value == 1) {
$str_value = $_SESSION['value1']; // $_SESSION['value1'] = "это единица"
$style = "color:#329a1c;";
}
else {
$str_value = $_SESSION['value2']; // $_SESSION['value2'] = "это ноль"
$style = "color:#ff0000;";
}

echo '<p id="block" style="'.$style.'"><span style="font-weight:bold; font-size:12px;">'.$str_value.'</span></p>';

Спустя 6 минут, 8 секунд (7.06.2011 - 13:50) skolozhabskiy написал(а):
не совсем так это просто пример, посмотрите я изменил код, протсо думал, что это не существенно, а идентификатор уникален

while ($row = mysql_fetch_assoc($result)) { // здесь все отлично!!!
........

$value = $row['value']; // принимает значения или 1 или 0 (целочисленные!) - здесь все также правильно
if ($value == 1) {
$str_value = $_SESSION['value1']; // $_SESSION['value1'] = "это единица"
?><script type="text/javascript">$(function(){ $('#block').css('color','#329a1c'); });</script><?
}
else {
$str_value = $_SESSION['value2']; // $_SESSION['value2'] = "это ноль"
?><script type="text/javascript">$(function(){ $('#block').css('color','#ff0000'); });</script><?
}

$out .= '<p id="block"><span style="font-weight:bold; font-size:12px;">'.$str_value.'</span></p>';

// $out .= '<p id="block" style="font-weight:bold; font-size:12px;">'.$str_value.'</p>'; - так тоже ничего не меняется

}

echo $out;


пожалуйста не придирайтесь только к точкеам и прочей чепухе не в этом дело, главное структура такая

спасибо

спасибо

Спустя 5 минут, 34 секунды (7.06.2011 - 13:55) Renden написал(а):
skolozhabskiy
и что изменилось?, я невижу.. да и зачем тебе сдесь jquery?

Спустя (7.06.2011 - 13:55) skolozhabskiy написал(а):
да так
 $style = "color:#ff0000;";
работает, спасибо, но хотелось бы понять почему с jquery такое не получается

спасибо

Спустя 1 минута, 13 секунд (7.06.2011 - 13:57) Renden написал(а):
skolozhabskiy
Я же тебе обьяснил в 1 примере... тебе надо добавить в js уникальное id для дива (<p>)..

Спустя 17 минут, 31 секунда (7.06.2011 - 14:14) skolozhabskiy написал(а):
Renden - спасибо за помощь, вы профессионал с большой буквы!!! все проблема в уникальности идентификатора, мелочь, но злостная оказалась.
Быстрый ответ:

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