Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как передать параметр (https://javascript.ru/forum/events/54729-kak-peredat-parametr.html)

ureech 30.03.2015 00:55

Как передать параметр
 
Здравствуйте.Такая ситуация.
<div id="parm" >123</div>


$(document).ready(function(){    
    $('#parm').click(function(){   
        $(this).load('http://neekitos/'+cat_url+'/parents'+cat_id+'.html');
});
});


Подскажите как передать $cat_url,$cat_id из дива в ф-цию?

ksa 30.03.2015 09:11

Цитата:

Сообщение от ureech
как передать $cat_url,$cat_id из дива в ф-цию?

Из какого дива? В какую функцию?

ureech 30.03.2015 18:59

Див:
<div id="parm" >123</div>

Хочу по клику на этот див вывести на странице другую страницу, расположенную по адрессу:
http://neekitos/{$cat.url}/parents{$cat_id}.html
при помощи Load().И не знаю как правильно указать переменные в див и объявить их в ф-ции?

laimas 30.03.2015 19:39

http://neekitos/{$cat.url}/parents{$cat_id}.html - и откуда вы их хотите взять? Похоже это серверные переменные у вас?

ksa 31.03.2015 08:27

Цитата:

Сообщение от ureech (Сообщение 363998)
Див:
<div id="parm" >123</div>

Хочу по клику на этот див вывести на странице другую страницу, расположенную по адрессу:
http://neekitos/{$cat.url}/parents{$cat_id}.html
при помощи Load().И не знаю как правильно указать переменные в див и объявить их в ф-ции?

Как вариант
- записать значения тех серверных переменных в атрибуты того ДИВа (или весь УРЛ)
- при клике считывать их
- грузить страницу по полученному УРЛ

ureech 31.03.2015 08:52

Цитата:

Сообщение от laimas
http://neekitos/{$cat.url}/parents{$cat_id}.html - и откуда вы их хотите взять? Похоже это серверные переменные у вас?

Да,сама сылка в smarty шаблоне.
Цитата:

Сообщение от ksa
- записать значения тех серверных переменных в атрибуты того ДИВа (или весь УРЛ)

В этом и вопрос,как правильно записать эти переменные в диве?И как потом объявить их в ф-ции?

ksa 31.03.2015 09:04

Цитата:

Сообщение от ureech
как правильно записать эти переменные в диве?

Это вопрос к ПХПистам...
Цитата:

Сообщение от ureech
как потом объявить их в ф-ции?

Их нужно объявить не в функции, а на странице записать их в атрибуты ДИВа. А в функции просто прочитать значения тех атрибутов...

laimas 31.03.2015 09:16

>Да,сама сылка в smarty шаблоне.

Ну если ссылку уже формирует Smarty, и эти данные в ней уже есть, а вы по этой ссылке и делаете запрос, то зачем еще что-то передавать в функцию?

ureech 31.03.2015 10:57

Прошу показать на примере. А то у меня чувство, что я не так понимаю как надо. Вот ссылка
<a class="gallery-block" href="{$cat.url}/parent{$cat.id}.html" data-title="категории">
{$cat.id}</a>

Превращаю ссылку в див и вешаю onclick
<div id="parm" onclick="click('{$cat.url}','{$cat.id}');return false;"></div>


Вот ф-ция

$(document).ready(function(){    
    $('#parm').click(function(){   
        $(this).load('http://neekitos/'+cat_url+'/parents'+cat_id+'.html');
});
});


Что не так?

laimas 31.03.2015 12:20

А зачем тогда ссылки?
$(function() {
    $('a.gallery-block').on('click', function() {
        $('#parm').load(this.href);
        return false
    })
});

А для div return false пустой звук.

ksa 31.03.2015 13:38

Цитата:

Сообщение от ureech (Сообщение 364107)
Превращаю ссылку в див и вешаю onclick
<div id="parm" onclick="click('{$cat.url}','{$cat.id}');return false;"></div>


Вот ф-ция

$(document).ready(function(){    
    $('#parm').click(function(){   
        $(this).load('http://neekitos/'+cat_url+'/parents'+cat_id+'.html');
});
});


Что не так?

Т.е. ты даже не понимаешь какую галиматью ты тут написал?

ureech 31.03.2015 15:36

Блин, вы меня ещё больше запутали.:( . Класс в ф-ции из ссылки, а id из дива, но ссылки уже нет..., есть только див.

ksa 31.03.2015 15:59

<script>
function myClick(Url,Id){
   alert('http://neekitos/'+Url+'/parents'+Id+'.html')
};
</script>
<div id="parm" onclick="myClick('{$cat.url}','{$cat.id}');return false;">Test</div>

Так понятно?

ureech 01.04.2015 10:51

Цитата:

Сообщение от ksa
Т.е. ты даже не понимаешь какую галиматью ты тут написал?

Нет.
Цитата:

Сообщение от ksa
Так понятно?

Так понятно, но alert(), не load().Для чего это, что бы я сам догнал как это применить к load()?

ksa 01.04.2015 11:04

Цитата:

Сообщение от ureech
что бы я сам догнал как это применить к load()?

Разумеется. :yes:

ureech 01.04.2015 11:31

Это конечно весело,:thanks: но к сожалению нет времени углубляться в теорию jquery, и поэтому приходиться учиться на аналогиях и мне надо просто вывести страницу-2 на странице-1, поэтому, если несложно покажите как это делается, а если сложно, всё равно спасибо. Было весьма позновательно.:write:

laimas 01.04.2015 11:45

Я вам показывал что необходимо сделать, с учетом того, что Smarty формирует адрес запроса. Чего вам еще нужно?

ureech 01.04.2015 12:05

Цитата:

Сообщение от laimas
Я вам показывал что необходимо сделать, с учетом того, что Smarty формирует адрес запроса. Чего вам еще нужно?

Если вы об этом
Цитата:

Сообщение от laimas
А зачем тогда ссылки?

1 $(function() {
2 $('a.gallery-block').on('click', function() {
3 $('#parm').load(this.href);
4 return false
5 })
6 });

А для div return false пустой звук.

Я там сверху(#12) написал, что мне не понятно. И если я оставляю и ссылку и див(?), то просто открывается новая страница.

Infinity178 01.04.2015 12:07

http://learn.javascript.ru/play/aRqmAb demo...

Просто поместите {$cat_url} и {$cat_id} в атрибут объекта

<div data-url="{$cat_url}" data-id="{$cat_id}" .....>txt</div>


Дальше берите эти данные:
var str = $('div').attr('data-url');


И используйте как пожелаете эти данные:
alert(str);


Собранный вариант по ссылке в демо

Infinity178 01.04.2015 12:10

ureech,
я правильно понял?
Smarty - предает данные виде {$cat_url} и {$cat_id}
Эти данные помещены в DIV
Путем jQuery нужно вытащить эти данные и поместить в некую функцию

Что должна делать функция - к делу не относиться!?

laimas 01.04.2015 12:19

>Я там сверху(#12) написал, что мне не понятно. И если я оставляю и ссылку и див(?), то просто открывается новая страница.

Есть у вас на странице набор ссылок с именем класса gallery-block. Судя по по тому что написано ранее, папку и некий id, который добавляется к имени страницы, формирует Smarty при выводе страницы.

$(function() {
    //при загрузке страницы этим ссылкам добавляется обработчик
    $('a.gallery-block').click(function() { //щелчок по ссылкам
        $('#parm').load(this.href); //получается ее url, делая Ajaх запрос по указанному адресу и помещая результат в div parm 
        return false
    })
});


Что не понятного?

ureech 01.04.2015 12:25

Цитата:

Сообщение от Infinity178
ureech,
я правильно понял?
Smarty - предает данные виде {$cat_url} и {$cat_id}
Эти данные помещены в DIV
Путем jQuery нужно вытащить эти данные и поместить в некую функцию

Да, правильно.
Цитата:

Сообщение от Infinity178
Что должна делать функция - к делу не относиться!?

Ф-ция должна вывести страницу по адресу в котором есть переменные {$cat_url} и {$cat_id} на той же странице где и див( или ссылка).
Вроде ваш пример с поста #19 то что надо, попробую разобраться.Спасибо.

ureech 01.04.2015 13:23

Цитата:

Сообщение от laimas
получается ее url, делая Ajaх запрос по указанному адресу и помещая результат в div parm

Получается Load() работает только с Ajax? И мне надо теперь ещё разбираться с аяксом,т.е. подключать его, писать файл ajax.php и т.п.?

laimas 01.04.2015 13:30

А вы в своем первом посте чего писали, разве не этот метод? И зачем вас разбираться с Ajaх?

Да, метод .load(), это самый простой из методов Ajax запроса, из тех что есть в jQuery. Зачем вам ajax.php? Прочтите о методе, как он работает, и все вопросы отпадут.

Вы запутались сами чего вам надо, ибо из начальной задачи такая околесица в последствии получилась, что слов нет как ее назвать.

ureech 01.04.2015 17:58

Цитата:

Сообщение от laimas
слов нет как ее назвать.

Это, брат, поцесс познания называется!:victory:

laimas 01.04.2015 18:18

Познание - это размышление, анализ. А то что у вас, это "повезет, не повезет" ;)

Infinity178 02.04.2015 02:57

ureech,
еще раз сформулируйте ВОПРОС или более конкретно укажите ПРОБЛЕМУ.

"Неверные вопросы - рождают неверные ответы"

P.S. то что вы указали в первом варианте - можно решить по разному, сколько форумчан = не меньше решений

laimas,
профессор! :) может быть вы поняли суть задачи?

laimas 02.04.2015 09:16

Я такой же профессор, как вы обладатель черного пояса.

Суть задачи в первом посте, а верно ли она представлена или нет, этого мне не известно.

ureech 02.04.2015 16:28

Всем спасибо, кто проявил терпение и желание помочь.Более-менее разобрался.Вариант
Цитата:

Сообщение от Infinity178
Infinity178

работает, но только со статикой, с динамикой не получилось заставить работать, может просто не очень старался.Применил способ
Цитата:

Сообщение от laimas
laimas

$(function() {
    $('a.gallery-block').click(function() { 
        $('#parm').load(this.href); 
        return false
    })
});
только вместо '#parm' использовал this.
Ещё раз всем удачи.:)

laimas 02.04.2015 16:37

Это каким образом this? В данном случае this это объект ссылки, то есть тег А по которому щелкнули. Вот его свойство href как раз и получаем как this.href. А $('#parm') - это объект в который будет помещен ответ сервера, и этот объект породили вы в своем коде, а не я. Если же вместо него указать $(this), значит ответ будет помещен в текущий тег А.


Часовой пояс GMT +3, время: 11:27.