ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Быстрый поиск по каталогу файлов

 

1757
AndreyKiev @AndreyKiev
Есть код ну он не ищет почему-то напостой выводит Поиск не дал результатов а должен искать по названию материала и если хоть одно слово совпадет он выводит этот материал. (каталог файлов)-для юкоз.

Кто может посмотреть в чем ошибка и выложить исправленный.

<script type="text/javascript">$(document).ready(function(){
// ~ Made by Bogdan4eg
// ~ 02.10.2009
$('#ldM3').after('<tr><td class="manTd1"><a href="javascript:loadCheck();">Поиск по названию</a></td><td class="manTd2"><div style="overflow: auto; height:80px; display: none; border:1px solid #cfe8fa; padding: 4px;" id="ressearch"></div></td></tr>');}); function loadCheck(){var query = $("#ldF1").val(); if (query.match(/^\s*$/)){_uWnd.alert('Название материала слишком короткое','',{w:200,h:70,tm:2300});return;} $('#ressearch').show().html('<span id="searchload"><br>Выполняется поиск, пожалуйста, подождите...</span>'); $.post('/load/', {query: query, a: 2}, function(data){var ifno = $(".newslink:first", data).attr("href"); if (ifno==undefined){_uWnd.alert('Поиск не дал результатов','',{w:200,h:70,tm:2300});$('#ressearch').hide();return;} $(".newslink", data).each(function(){var hrf = $(this).attr("href"); var txt = $(this).text(); var hrfs = '<a href="'+hrf+'" target="_blank" title="Откроется в новом окне">'+txt+'</a><br>'; $("#searchload").hide().after(hrfs);});});}</script>

6703
Андрей @ZloVeЩиЙ
код на Jquery, к сожалению не силен.
кстати ты библиотеку Jquery подключил к сайту, может из-за этого не работает.

2536
удалён @crigon
if (ifno==undefined){_uWnd.alert('Поиск не дал результатов'

А запрашивается это инфо через ajax, отсылается ********** к ********** (php-скрипт)
Затем полученный результат переделывается в свой список ссылок

А обычный поиск работает? Или это он и есть?

1757
AndreyKiev @AndreyKiev
Обычный поиск работает . Ну мне нужно чтобы выводил результат без перезагрузки страницы на этой же странице

1757
AndreyKiev @AndreyKiev
Вот где это работает у меня такой ж скрипт стоит и не пашет проверти кто может мож я неправильно вытащил его оттуда?)

**********

Поиск по названию (водите названия например скрипт и вам выводит результат.)

2536
удалён @crigon
AndreyKiev, я на этой странице только стандартную форму "найти" вижу

6703
Андрей @ZloVeЩиЙ
crigon пишет:

AndreyKiev, я на этой странице только стандартную форму "найти" вижу

Эта форма поиска при добавлении материалов, вообще считаю что не удобно, хотя может скрипт писался для своей какой то определенной цели.
Осмотрел весь скрипт, каждую переменую, каждый # (ID) Все совпадает. По идее скрипт должен работать. Но выдает ошибку виду: "Требуется обьект"

2536
удалён @crigon
А инпут id=ldF1 есть? это поле, куда вписывается что искать

По ссылке поиск с перезагрузкой страницы...

6703
Андрей @ZloVeЩиЙ
crigon пишет:

А инпут id=ldF1 есть? это поле, куда вписывается что искать
По ссылке поиск с перезагрузкой страницы...

Инпут есть, это основное поле, системой запрещенно редактирование подобных форм добавления материалов, попросту заменили на $BODY$ Но при просмотре исходного кода, можно найти ту информацию которая нужна для написания скриптов, разнообразные ид и прочие функции, этим знающий юзер и пользуется.
Попробуй зайти на главную и авторизироватся:
Эта информация скрыта и доступна только зарегистрированным пользователям.

После чего перейти по ссылке указаной постом выше.
---
з.ы. Изначально нужно не мне, AndreyKiev попросил помочь, но так как я в скриптах, тем более такой сложности, еще и с использованием jquerу, не силен...
Вообщем хотелось бы и самому разобратся что к чему и почему не происходит то что должно происходить.

2536
удалён @crigon
Теперь вижу. Покажите сайт, на котором не работает...

И есть ли в head
<script type="text/javascript" src="http://s23.ucoz.net/src/u.js"></script>
?

Отредактировано crigon - 18.10.2009
1757
AndreyKiev @AndreyKiev
crigon пишет:

Теперь вижу. Покажите сайт, на котором не работает...

И есть ли в head
<script type="text/javascript" src="http://s23.ucoz.net/src/u.js"></script>
?

**********
Да есть.

2536
удалён @crigon
Попробуй так

<script type="text/javascript">
$(document).ready(function(){
$('#ldM3').after('<tr><td class="manTd1"><a href="javascript:loadCheck();">Поиск по названию</a></td><td class="manTd2"><div style="overflow: auto; height:80px; display: none; border:1px solid #cfe8fa; padding: 4px;" id="ressearch"></div></td></tr>');
});

function loadCheck(){
var query = $("#ldF1").val();
if (query.match(/^\s*$/)) {
_uWnd.alert('Название материала слишком короткое','',{w:200,h:70,tm:2300});return; }

$('#ressearch').show().html('<span id="searchload"><br>Выполняется поиск, пожалуйста, подождите...</span>');

$.post('/load/', {query: query, a: 2}, function(data) {
var ifno = $(".mytd:first a", data).attr("href");

if(ifno==undefined){
_uWnd.alert('Поиск не дал результатов','',{w:200,h:70,tm:2300});$('#ressearch').hide(); return; }

$(".newslink", data).each(function(){
var hrf = $(this).attr("href");
var txt = $(this).text();
var hrfs = '<a href="'+hrf+'" target="_blank" title="Откроется в новом окне">'+txt+'</a><br>';
$("#searchload").hide().after(hrfs); });
});
}
</script>

1757
AndreyKiev @AndreyKiev
crigon пишет:

Попробуй так

<script type="text/javascript">
$(document).ready(function(){
$('#ldM3').after('<tr><td class="manTd1"><a href="javascript:loadCheck();">Поиск по названию</a></td><td class="manTd2"><div style="overflow: auto; height:80px; display: none; border:1px solid #cfe8fa; padding: 4px;" id="ressearch"></div></td></tr>');
});

function loadCheck(){
var query = $("#ldF1").val();
if (query.match(/^\s*$/)) {
_uWnd.alert('Название материала слишком короткое','',{w:200,h:70,tm:2300});return; }

$('#ressearch').show().html('<span id="searchload"><br>Выполняется поиск, пожалуйста, подождите...</span>');

$.post('/load/', {query: query, a: 2}, function(data) {
var ifno = $(".mytd:first a", data).attr("href");

if(ifno==undefined){
_uWnd.alert('Поиск не дал результатов','',{w:200,h:70,tm:2300});$('#ressearch').hide(); return; }

$(".newslink", data).each(function(){
var hrf = $(this).attr("href");
var txt = $(this).text();
var hrfs = '<a href="'+hrf+'" target="_blank" title="Откроется в новом окне">'+txt+'</a><br>';
$("#searchload").hide().after(hrfs); });
});
}
</script>


Бесконечно пишет Выполняется поиск, пожалуйста, подождите...

2536
удалён @crigon
В шаблоне результатов поиска вместо

<a href="http://europe-kiev.ucoz.ru/load/hits_mp3/chili_i_g_kucenko_skazki/1-1-0-48">Чили И Г. Куценко - Сказки</a></a>

Поставь

<a class="newslink" href="http://europe-kiev.ucoz.ru/load/hits_mp3/chili_i_g_kucenko_skazki/1-1-0-48">Чили И Г. Куценко - Сказки</a>

Первый вариант скрипта должен работать

1757
AndreyKiev @AndreyKiev
crigon пишет:

В шаблоне результатов поиска вместо

<a href="http://europe-kiev.ucoz.ru/load/hits_mp3/chili_i_g_kucenko_skazki/1-1-0-48">Чили И Г. Куценко - Сказки</a></a>

Поставь

<a class="newslink" href="http://europe-kiev.ucoz.ru/load/hits_mp3/chili_i_g_kucenko_skazki/1-1-0-48">Чили И Г. Куценко - Сказки</a>

Первый вариант скрипта должен работать

И как ты себе это представляешь? Что это даст? Будет находить одну песню?)) не я тебя не понял и куда ставить тоже не понял. Результат поиска такой страницы вопще нету.

2536
удалён @crigon
Я не знаю как устроен укоз, но у найденных ссылок должен быть обозначенный класс. Именно так этот скрипт и работает.

1757
AndreyKiev @AndreyKiev
crigon пишет:

Я не знаю как устроен укоз, но у найденных ссылок должен быть обозначенный класс. Именно так этот скрипт и работает.

Мда стока мороки из одного скрипта лан извини что дергал выживем и без этого скрипта и на юкозе он может быть будет выложен правильно.

2536
удалён @crigon
ZloVeЩиЙ пишет:

так как я в скриптах, тем более такой сложности, еще и с использованием jquerу, не силен...
Вообщем хотелось бы и самому разобратся что к чему и почему не происходит то что должно происходить.

<script type="text/javascript">
$(document).ready(function(){ // Как только документ полностью загрузится
$('#ldM3').after('<tr><td class="manTd1"><a href="javascript:loadCheck();">Поиск по названию</a></td><td class="manTd2"><div style="overflow: auto; height:80px; display: none; border:1px solid #cfe8fa; padding: 4px;" id="ressearch"></div></td></tr>'); // Добавляем после элемента id=ldM3 строку таблицы с ссылкой для поиска без перезагрузки
});

// Код, который выполняется посля нажатия "Поиск по названию":
function loadCheck(){
var query = $("#ldF1").val(); // Получаем текст инпута id=ldF1

if(query.match(/^\s*$/)) { // Если текст подходит под наше регулярное выражение (слишком короткий), показать окошко и прекратить выполнение скрипта
_uWnd.alert('Название материала слишком короткое','',{w:200,h:70,tm:2300}); return; }

// Если всё ОК, продолжаем:
$('#ressearch').show().html('<span id="searchload"><br>Выполняется поиск, пожалуйста, подождите...</span>'); // Ставим display:block для id=ressearch и пишем в него "Выполняется поиск"

// Посылаем запрос форме, **********query=_НАШ_ТЕКСТ_&a=2 (a - hidden-инпут, стоит в дефолтной форме поиска)
$.post('/load/', {query: query, a: 2}, function(data){

/* Сервер отдаёт нам примерно такое:

<div id="entryID4017"><div class="eTitle">Форум Marvel для uCoz'a </div>
...
<a class="newslink" href="http://forucoz.com/load/shablony_for_ucoz/forum_marvel_dlja_ucoz39a/2-1-0-4017">
<span class="hhh" title="Форум Marvel для uCoz'a">Форум Marvel для uCoz'a</span>
</a>
...
</div>

...

<div id="entryID4010"><div class="eTitle">Шаблон Lineage2 для Ucoz </div>
...
<a class="newslink" href="http://forucoz.com/load/shablony_for_ucoz/shablon_lineage2_dlja_ucoz/2-1-0-4010">
<span class="hhh" title="Шаблон Lineage2 для Ucoz">Шаблон Lineage2 для Ucoz</span>
</a>
...
</div>
и т.д.

*/


// Получаем атрибут HREF ПЕРВОЙ ссылки с class=newslink из полученных от post-запроса
var ifno = $(".newslink:first",data).attr("href");

// Если атрибута нет, то и ссылки нет, выводим окошко, прячем id=ressearch (display:none), останавливаем скрипт
if (ifno==undefined) {
_uWnd.alert('Поиск не дал результатов','',{w:200,h:70,tm:2300});
$('#ressearch').hide(); return; }

// Если всё ОК, перебираем каждый элемент с class=newslink
$(".newslink",data).each(function(){
var hrf = $(this).attr("href"); // Получаем href
var txt = $(this).text(); // Получаем то, что между <a> и </a>
var hrfs = '<a href="'+hrf+'" target="_blank" title="Откроется в новом окне">'+txt+'</a><br>'; // Переделываем по-своему
$("#searchload").hide().after(hrfs); // Скрываем id=searchload и добавляем ссылку сразу после него
});
}); }</script>