Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рандом 
:(
    Опции темы
chertoss
Дата 3.9.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



здравствуйте, возникла такая проблема, у меня выводятся в цикле строки таблицы

Код

<tr>
    <td>текст</td>
    <td>картинка</td>
</tr>

 соответственно если это цикл, то строк может быть сколько угодно много, как можно выводить эти строки в рандомном порядке?

например так

Код

<tr>
    <td>текст 1</td>
    <td>картинка 1</td>
</tr>
<tr>
    <td>текст 7</td>
    <td>картинка 7</td>
</tr>
<tr>
    <td>текст 4</td>
    <td>картинка 4</td>
</tr>
<tr>
    <td>текст 2</td>
    <td>картинка 2</td>
</tr>

PM MAIL   Вверх
bars80080
Дата 3.9.2008, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



собрать случайную последовательность, что-то вроде такого
Код

var kol = 10
var max = 3;
var t = new Array();
var flag;

i = 0;
while(i < max) {
var c = Math.round(kol*Math.random());
flag = true;
len = t.length;
for(j = 0; j < len; j++) {
if(t[j] == c) { flag = false; i++; }
}
if(flag) t[len] = c;
}


а затем прокрутить её в цикле и вывести строки по этой последовательности

PM MAIL WWW   Вверх
chertoss
Дата 3.9.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



не совсем понятно, можно ли более подробно или с коментами?
PM MAIL   Вверх
bars80080
Дата 3.9.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



не проверял, так сляпал:
Код

var kol = 10; // количество строчек
var max = 3; // сколько надо вывести
var t = new Array(); // массив случайной последовательности
var flag;

i = 0;
while(i < max) { 
var c = Math.round(kol*Math.random()); // случайное число от 0 до kol
flag = true;
len = t.length; 
for(j = 0; j < len; j++) { // перебираем массив t и ищем в нём это число, 
if(t[j] == c) { flag = false; i++; } // если найдём, то записывать не будем. зачем нам повторения в массиве случайных чисел?
}
if(flag) t[len] = c; // не нашли - запишем
}

// дальше цикл вывода:
for(i = 0; i < t.length; i++) {
// печатаем строчку в которую подствляем число t[i]
}

PM MAIL WWW   Вверх
chertoss
Дата 3.9.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



эх, неудобен такой способ.. можно ли как то иначе? скажем брать id самой таблицы, как нить сделать коллекцию тегов tr, потом запихать их в массив и пересортировать в случайном порядке? ну как нибудь так.. 
PM MAIL   Вверх
bars80080
Дата 3.9.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



а какая разница? или я что-то другое написал?
PM MAIL WWW   Вверх
chertoss
Дата 3.9.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



ну я не знаю например, сколько строк у меня будет
PM MAIL   Вверх
bars80080
Дата 3.9.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



ну, так вначале насобирай массив этих строк, затем
kol = massiv.length;
max = kol;
и всё
PM MAIL WWW   Вверх
chertoss
Дата 3.9.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



так у меня в этом как раз весь ступор и есть, чета не не соображу никак как мне массив строк собрать.. туплю :(
PM MAIL   Вверх
bars80080
Дата 3.9.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



а как ты их тогда выводишь?
PM MAIL WWW   Вверх
chertoss
Дата 3.9.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



вот так

есть хмл
Код

<root>
    <item name="item1">
        <param name="name">контора 1</param>
        <param name="logo">http://img13.nnm.ru/imagez/gallery/2/5/1/f/b/251fb647deafeb82fb595cbf13dfa3c3_full.jpg</param>
    </item>
    <item name="item2">
        <param name="name">контора 2</param>
        <param name="logo">http://img12.nnm.ru/imagez/gallery/e/e/4/4/9/ee449b84776fcd767e0447dbf61cae6a_full.jpg</param>
    </item>
    <item name="item3">
        <param name="name">контора 3</param>
        <param name="logo">http://img11.nnm.ru/imagez/gallery/6/b/6/c/5/6b6c5a07198809e8277274a3486314ee_full.jpg</param>
    </item>
</root>



пишу к нему хсл
Код

<xsl:template match="root">
<html>
    <head>
        <title></title>
    </head>
    <body>

        <table id="table">
            <tbody>
            
            <xsl:for-each select="item">
                <tr>
                    <td><xsl:value-of select="param[@name = 'name']"/></td>
                    <td><img alt="" src="{param[@name = 'logo']}" height="50" /></td>
                </tr>
            </xsl:for-each>
            
            </tbody>
        </table>
        
    </body>
</html>
</xsl:template>



PM MAIL   Вверх
bars80080
Дата 3.9.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



бо, тут я не помошник
PM MAIL WWW   Вверх
chertoss
Дата 4.9.2008, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



да я не прошу вникать в суть xsl, на выходе все равно HTML получается, вот я и спрашиваю, как собрать все TR у TABLE ID="table" в массив?
PM MAIL   Вверх
SelenIT
Дата 5.9.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



А исходный XML нельзя перемешать? На крайний случай - отсортировать в XSL по чему-нибудь вроде substring(param[@name = 'logo'],46,32), на первый взгляд получится вполне бессистемный порядок...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
chertoss
Дата 5.9.2008, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 28.7.2008

Репутация: 1
Всего: 2



всем спасибо, проблему уже решил!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.