Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Открыть новую тему     Написать ответ в эту тему

Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Фильтр по слову "jquery" не дал какой-либо общей темы по этой библиотеке, поэтому решился создать. У меня возник такой вопрос: согласно справочной документации такой код:
 

Код:
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>4</p>
 
  <script language="javascript">
      $("p")[0].html("test");
  </script>

 
должен <p>1</p> заменить на <p>test</p>. Но не работает. Пробовал еще так:
 

Код:
$("p").get(0).html("test");

 
Есть подозрения, что мануал, по которому осваиваю библиотеку, написан для более старой версии, а позже принцип обращения к конкретному элементу из коллекции как-то изменился. Кто знает, как реализовать это (версия библиотеки - v1.3.2)



Документация по jQuery - eng, рус

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 16:22 11-08-2009 | Исправлено: Cheery, 07:35 09-08-2013
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
метод get(index) возвращает объект Element а не объект jQuery, следовательно: $($("p").get(0)).html("test"), а логичнее будет так $("p:first").html("test")

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:53 11-08-2009 | Исправлено: andead, 16:55 11-08-2009
Crocell

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть единственный мануал, по которому надо что-либо смотреть.
А первый из выбранных элементов изменять так: $("p:first").html('test');
Любой другой эл-т так: $("p:eq(1)").html('test');
Подробнее в разделе Selectors - basic filters

Всего записей: 329 | Зарегистр. 12-05-2007 | Отправлено: 16:56 11-08-2009
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
andead, Crocell ясно, спасибо

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 17:11 11-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день.  
Помогите исправить ошибку.
есть код пхп:

Код:
while($row=mysql_fetch_array($razdel))
        {
            if ($subHead != $row[0])
            {
                 $subHead = $row[0];
                 echo '<span class="header">',$subHead,'</span>';
            }
            echo '<a href="http://',$_SERVER['SERVER_NAME'],$_SERVER['PHP_SELF'],'?c=',$row[2],'" class="menu">',$row[1],'</a>';
        }

код jquery. В этом варианте одновременно все меню раскрываются и сворачиваются.

Код:
<script>
$(document).ready( function() {
    $('span.header').click( function() {
        var parentID = $(this).parents('div').attr('id');
        $("#" + parentID + " > .menu").slideToggle( 'fast' );
    });
    return false;
});
</script>

а в этом сворачиваются и разварачиваются по отдельности, но только одно подменя

Код:
<script>  
$(document).ready( function() {  
    $('span.header').click( function() {  
        $(this).next().slideToggle( 'fast' );  
    });  
    return false;  
});  
</script>  

Еще вопросик. Как его заставить чтобы сначала все было свернуто?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 17:38 13-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
И еще вопрос.
Уже всех замучал кто у меня в асе есть. Так что вам повезло что Вас нет у меня в асе.
Не как не могу понять как передать значения из JavaScript обратно в PHP.
Делаю динамический select.
index.php

Код:
 
...
<script type="text/javascript">
   $(document).ready(function(){        
            $('#razdel').change(function(){
                  $.post('select.php',{razdel:$('#razdel').val()},function(data){
                      alert('razdel:'+data);
                  });
            });
});
</script>
...
<td>Раздел в каталоге продукции</td><td><select id="razdel" size="1" name="razdel">
<?                            $result = mysql_query("SELECT * FROM `Razdel`");
                            while($row=mysql_fetch_assoc($result))
                            {
                                echo '<option value="',$row['id'],'">',$row['name'],'</option>';
                            }
?>                          </select></td>
 

Сформировал первый селект. Выбираю любое значение этого селекта. Получаю ответ типо razdel:1Колбаса2Картошка3Рыба
 
Как мне эти данные запихнуть во второй селект?
 
select.php

Код:
<?php
if(isset($_POST['razdel'])&&is_numeric($_POST['razdel']))
{
    include './inc/config.inc.php';
    $link = mysql_connect($mysql_localhost,$mysql_user,$mysql_pass);
    mysql_select_db($mysql_db,$link);
 
    $result = mysql_query("SELECT * FROM `Podrazdel` WHERE `razdel_id`='".mysql_real_escape_string($_POST['razdel'])."'");
     while($row=mysql_fetch_assoc($result))
     {
         echo $row['id'],$row['name'];
     }
}
?>

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 20:28 13-01-2010 | Исправлено: DarkSmoke, 20:28 13-01-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Как мне эти данные запихнуть во второй селект?  

передать их в скрипт с помощью GET или POST метода.
либо с помощью AJAX, либо обновив страницу.  
не совсем понимаю в чем проблема

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:52 13-01-2010
APTEM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
передать их в скрипт с помощью GET или POST метода.  
либо с помощью AJAX, либо обновив страницу.  
не совсем понимаю в чем проблема

он уже, вроде, сформировал содержимое второго селекта. только я не понял, откуда в ответе пявляется "razdel:"?
 
я бы рекомендовал в скрипте select.php использовать JSON, чтобы на клиенте было проще парсить:
Код:
$result = mysql_query("SELECT * FROM `Podrazdel` WHERE `razdel_id`='".mysql_real_escape_string($_POST['razdel'])."'");  
     echo '{';
     $first = 1;
     while($row=mysql_fetch_assoc($result))  
     {
         if (!$first)
              echo ',';
         echo "'{$row['id']}':'{$row['name']}'";
         $first = 0;
     }
     echo '}';
 
потом вешаешь обработчик на результат запроса и вызываешь eval('('+responseBody+')') - получаешь объект с перечнем вариантов
 
Добавлено:
прочитал код ещё раз, понял, что это за "razdel:"...
теперь вместо

Код:
                      alert('razdel:'+data);  

 
делаешь так:

Код:
var optionsData = eval('('+data+')');
var razdel = $('#razdel');
razdel.clearOptions(); //очистить список опций
for(var key in optionsData) {
  razdel.addOption(key, optionsData[key]); // добавить опцию к селекту
}
извини, в jQuery не силён, пишу по наитию: clearOptions и addOption могут быть совсем другими или вообще реализовываться сложнее.
 
ссылка по теме (работа с элементом select)

Всего записей: 396 | Зарегистр. 16-07-2004 | Отправлено: 21:34 13-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
передать их в скрипт с помощью GET или POST метода.

Это как?
 
А с первым вопросом не кто не подскажет?
скрипту  select.php я передаю постом.
 

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 22:25 13-01-2010
APTEM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

Всего записей: 396 | Зарегистр. 16-07-2004 | Отправлено: 01:17 14-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
C динамическими селектами оказалась все проще.
Даю код  может кому понадобится
index.php

Код:
 
<html>
<head>
  <title></title>
  <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
</head>
<body>
<select id="razdel" size="1" name="razdel">
<?
    include './inc/config.inc.php';
    $link = mysql_connect($mysql_localhost,$mysql_user,$mysql_pass);
    mysql_select_db($mysql_db,$link);
 
    $result = mysql_query("SELECT * FROM `Razdel`");
    while($row=mysql_fetch_assoc($result))
    {
        echo '<option value="',$row['id'],'">',$row['name'],'</option>';
    }
?>
</select>
<div id="result"></div>
<script type="text/javascript">
    $(document).ready(function(){
        $('#razdel').change(function(){
            $.post('select.php',{razdel:$('#razdel').val()},function(data){
                  //alert('razdel:'+data);
                  $('div#result').append("<option>-- Не выбранно --</option>").html(data);
              });
        });
    });
    </script>
</body>
</html>
 

select.php

Код:
 
<?php
if(isset($_POST['razdel'])&&is_numeric($_POST['razdel']))
{
    include './inc/config.inc.php';
    $link = mysql_connect($mysql_localhost,$mysql_user,$mysql_pass);
    mysql_select_db($mysql_db,$link);
 
    $result = mysql_query("SELECT * FROM `Podrazdel` WHERE `razdel_id`='".mysql_real_escape_string($_POST['razdel'])."'");
    echo '<select size="1" name="podrazdel"><option value="1">-- не выбранно --</option>';
     while($row=mysql_fetch_assoc($result))
     {
         echo '<option value="',$row['id'],'">',$row['name'],'</option>';
 
     }
     echo '</select>';
}
?>
 

все работает.
 
Добавлено:
Добрый день.
Люди добрые, помогите написать скрипт.
Есть меню:
 
Раздел1
  Подраздел1
  Подраздел2
Раздел2
  Подраздел21
  Подраздел22
 
Количество разделов и подразделов заранее не известно. Но структура именно такая будет.
Как это реализовать на jQuery?
 
 
Добавлено:
Меню формируется с помощью PHP

Код:
while($row=mysql_fetch_array($razdel))
        {
            if ($subHead != $row[0])
            {
                 $subHead = $row[0];
                 echo '<span class="active">',$subHead,'</span>';
            }
            echo '<a href="http://',$_SERVER['SERVER_NAME'],$_SERVER['PHP_SELF'],'?c=',$row[2],'">',$row[1],'</a>';
        }

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 14:34 14-01-2010 | Исправлено: DarkSmoke, 16:09 14-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
И тут как я понял уже сложность не яваскрипте а в том что генерирует PHP. Вот нашел скрипт

Код:
 
<script>
$(document).ready( function() {
    $('#catalog2 a').hide();
    $("#catalog2 span").click(function(){
        $(this).next("a").slideToggle("fast")
        .siblings("a:visible").slideUp("fast");
        $(this).toggleClass("active");
        $(this).siblings("span").removeClass("active");
    });
});
</script>
 

Вот если все "а" в див вставить, тогда будетработать нормально. Но вот с таким PHP не вставишь все "а" в див.
Кто может помочь?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 16:57 14-01-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ничего не понятно, но я рискну
 

Код:
<script src="http://code.jquery.com/jquery-1.4.min.js"></script>
 
<style>
.menu a, .menu span { display: block; }
</style>
 
<div class="menu">
    <span class="active">Раздел1</span>
    <a href="#">Подраздел1</a>
    <a href="#">Подраздел2</a>
 
    <span class="active">Раздел2</span>
    <a href="#">Подраздел21</a>
    <a href="#">Подраздел22</a>
</div>
 
<script>
$('.menu a').hide();
$('.menu span').click(function(){
    $(this).nextUntil('span').toggle();
});
</script>

 
а вообще такие вещи делаются с помощью списков ul/li

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 00:42 17-01-2010 | Исправлено: andead, 00:46 17-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не, так не работает.  
 
Ну мне все равно списками или блоками или параграфами, лишь бы работало. Вроде простая задача, а не как не могу решить.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 11:14 17-01-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня всё работает

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:00 17-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Работает. Не работала потому что у меня версия jQuery ниже была jquery-1.3.2.min.js
 
Спасибо большое!!!

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 15:01 17-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
как передать GET запрос с помощью jQuery, если ссылка выглядет так _http://domen/index.php?c=3
 
Добавлено:
точнее как получить значение ссылки?
Пытаюсь получить значение нажатой ссылки так

Код:
$('#catalog2 a').click(function(){
        var a = $('#catalog2 a').attr("href");
        alert(a);
        return false;
});

Но так я получаю только значение первой ссылки, а не нажатой.
 
Добавлено:
а GET передаю так

Код:
 
$.get('../inc/catalog.inc.php',{c:'СЮДА НАДО ВЛЕПИТЬ ЗНАЧЕНИЕ НАЖАТОЙ ССЫЛКИ'},function(data){
     $('#content').html(data);
});
 

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 17:44 17-01-2010 | Исправлено: DarkSmoke, 18:03 17-01-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
$('#catalog2 a').click(function(){  
        alert(this.href);  
        return false;  
});
 
$('#catalog2 a').click(function(){  
        var param = this.href;  
        $.get('../inc/catalog.inc.php',{c:param},function(data){  
                $('#content').html(data);  
        });
        return false;  
});
 


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:22 17-01-2010 | Исправлено: andead, 18:24 17-01-2010
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Класс. Все работает. Спасибо.
 
Но, я открыл сформировавшийся HTML и увидел что все что подгружается методом $.get не отображается в этом HTML, хотя на странице все отобразилось как положено.
 
Я так понимаю, что и поисковые системы не найдут этой информации.
 
А есть какие-то выходы из ситуации?
Применяю $.get что бы меню
Цитата:
<script src="http://code.jquery.com/jquery-1.4.min.js"></script>  
 
<style>  
.menu a, .menu span { display: block; }  
</style>  
 
<div class="menu">  
    <span class="active">Раздел1</span>  
    <a href="#">Подраздел1</a>  
    <a href="#">Подраздел2</a>  
 
    <span class="active">Раздел2</span>  
    <a href="#">Подраздел21</a>  
    <a href="#">Подраздел22</a>  
</div>  
 
<script>  
$('.menu a').hide();  
$('.menu span').click(function(){  
    $(this).nextUntil('span').toggle();  
});  
</script>

не сворачивалось после перезагрузки страницы.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 20:29 17-01-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А есть какие-то выходы из ситуации?

генерировать страницу полностью на сервере
 
Добавлено:

Цитата:
не сворачивалось после перезагрузки страницы.

запоминайте информацию в куках

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 20:31 17-01-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru