Использование ключей в массиве php для сортировки и изменения порядка отображения div - PullRequest
2 голосов
/ 08 октября 2011

У меня есть массив динамических переменных php, которые являются ключами к нескольким идентификаторам div. Я ищу способ отсортировать количество php и использовать эту последовательность, чтобы переупорядочить мои div. Я нашел несколько потоков о том, как использовать jquery для переупорядочения элементов div на основе входных данных массива, но все они настолько различны, что с моим уровнем квалификации я не смог эффективно адаптировать их предложения. Вот тема, которая очень близка к тому, что я пытаюсь сделать. Динамическое упорядочение div с использованием jQuery

Четкое объяснение моей цели: участники собирают деньги, у каждого есть страница по сбору средств. Переменная php - это сумма денег, которую они собрали со своей страницы. Функция упорядочит элементы div на странице, чтобы сначала показывать наиболее прибыльный, и т. Д.

Приведенный ниже код отражает мой макет, однако я должен уточнить, что все мои div имеют уникальный контент, поэтому динамическая генерация для них не будет работать.

<?php 

$Contestants = array(
    $Totals[0] => 'contestant0', 
    $Totals[1] => 'contestant1',
    $Totals[2] => 'contestant2'
);

krsort ($Contestants);

?>

<div id="container">
 <div id="contestant0">
  <p><?php print ($Totals[0]) ?></p> 
 </div>
 <div id="contestant1">
  <p><?php print ($Totals[1]) ?></p> 
 </div>
 <div id="contestant2">
  <p><?php print ($Totals[2]) ?></p> 
 </div>
</div>

Я знаю, как сложен код, который я дал, но javascript, который я набрал, я считаю довольно бесполезным и в лучшем случае смущающим.

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Нет необходимости в jQuery, если я что-то упустил.

<?php 

$Contestants = array(
    $Totals[0] => 'contestant0', 
    $Totals[1] => 'contestant1',
    $Totals[2] => 'contestant2'
);

rsort ($Contestants);

?>


<div id="container">
<?php foreach( $Contestants as $k => $v ) { ?>  
   <div id="<?php echo $v ?>">
     <p><?php echo $k ?></p> 
    </div>
<?php } ?>
</div> 
0 голосов
/ 08 октября 2011

Сделал быстрый пример на JSfiddle:

http://jsfiddle.net/2U7fv/4/

Похоже, вам нужно использовать стандартный метод JS "sort ()", который принимает метод с двумя аргументами, который сравнивает оба аргумента, и возвращает значение 1 или более, если аргумент B должен быть отсортирован раньше, чем аргумент A . http://www.w3schools.com/jsref/jsref_sort.asp

Итак, процесс выглядит так:

  • Поместите все свои div в массив
  • Выполнить, чем массив через метод сортировки
    • Метод сортировки:
    • Получает суммы пожертвований двух дел.
    • Разбирает знак доллара
    • Возвращает 1 или больше, если B выше, 0 или меньше, если A выше
  • Возвращает отсортированный массив узлов DOM
  • Преобразовать этот массив в одну длинную строку HTML
  • Установите #container html в эту строку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...