Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2012, 22:39
Новичок на форуме
Отправить личное сообщение для Скоробогатов Посмотреть профиль Найти все сообщения от Скоробогатов
 
Регистрация: 23.08.2012
Сообщений: 8

массив в ПХП, обработка в JS.
(javascript не знаю совсем )

Есть кусок PHP кода, в котором описаны массивы:
$words=array(полтыщи значений);
$urls=array(полтыщи значений);

В HTML коде есть <img id="img1" src="">

Есть JS-скрипт, который анализирует структуру документа, получившуюся с учетом других JS-скриптов, и в переборе тегов (теги называются "yatag") находит все с определенным классом (назовем его "nuzhnyjclass").

Что хочется:
чтобы при вышеописанном переборе тегов содержимое найденного тега (там короткий текст) разбивалось на слова (наверное, с помощью .split(' ')), и каждое слово анализировалось на предмет вхождения в тот РНР массив $words. А если вхождение находилось, скажем, в элементе $words[$i], то атрибуту src вышеобозначенного <img id="img1"> присваивалось значение из массива $urls тоже с индексом $i.

Правильно ли сначала все массивы загнать в JS как-то так:
<?PHP
for ($i=0;$i<sizeof($words);$i++)
{
?>
<script type="text/javascript">
jswordsarray.push("$words[$i]");
jsurlsarray.push("$urls[$i]");
</script>
<?PHP
}
?>

...а потом уже анализировать всё в JS?
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2012, 23:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Скоробогатов
Правильно ли сначала все массивы загнать в JS как-то так:
для этого придумали json_encode в PHP что бы не парится с массивами и объектами..
<script type="text/javascript">
    var jswordsarray = <?php echo json_encode( $words );?>
    var jsurlsarray = <?php echo json_encode( $urls );?>
</script>
а в JS с ними работать как с объектами. А если нужно перебрать то юзаем в JS:
for( var key in jswordsarray ) {
    if ( Object.prototype.hasOwnProperty( key ) ) {
        alert( "key: " + key + ", value: " + jswordsarray[ key ] );
    }
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2012, 23:52
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Скоробогатов
...а потом уже анализировать всё в JS?
как проверять вхождение значения в массив будете?

тыща проходов для одной проверки - жырно.
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2012, 00:22
Новичок на форуме
Отправить личное сообщение для Скоробогатов Посмотреть профиль Найти все сообщения от Скоробогатов
 
Регистрация: 23.08.2012
Сообщений: 8

Сообщение от melky Посмотреть сообщение
тыща проходов для одной проверки - жырно.
Так и собирался. А какие варианты?
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2012, 01:37
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Скоробогатов Посмотреть сообщение
Так и собирался. А какие варианты?
в пхп выводить в отсортированном виде, а в JS проверять вхождения с помощью бинарного поиска.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 16:11
Нужно передать массив из php в JS tuezov52 AJAX и COMET 2 06.11.2011 22:08
Анализ и обработка js m4gz Общие вопросы Javascript 4 27.10.2011 11:10
массив на js alerzo Events/DOM/Window 2 26.09.2011 10:21
преобразовать php массив в массив js zebulun Общие вопросы Javascript 12 01.09.2011 23:49