Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS]Jak złapać niestandardowy atrybut article_id, Rozwijanie pełnego artykuły JS jak złapać nietypowy atrybut
stania-pl
post 12.09.2012, 18:39:14
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 12.09.2012

Ostrzeżenie: (0%)
-----


Witam !

Jestem nowy, dopiero uczę się JS mam taki oto problem

Moim celem jest rozwijanie całego artykułu po kliknięciu linka Więcej.

mam kod HTML gdzie obok class mam atrybut article_id

  1. <div class="leading-0" article_id="7">
  2. <span> cos tam costam </span>
  3. <a class="czytajwiecej" href="#">Wiecej</a>
  4. </div>
  5.  
  6. <div class="leading-1" article_id="8">
  7. <span> blalalalalalla </span>
  8. <a class="czytajwiecej" href="#">Wiecej</a>
  9. </div>


Jak za pomocą JS złapać wartość elementu article_id ? Jest to niestandardowy atrybut (element ID wiem jak złapać - getElementById) ?

Krok dalej ?
Mam przygotowany plik php który będzie pobierał z bazy danych pełen tekst artykułu i chciałbym aby zamieniał po kliku na Więcej "intro" (<span> cos tam costam </span>) na cały artykuł.

Jak połączyć kliknięcie <a class="czytajwiecej"> z danego diva aby wrzucał pełny artykuł do diva (plik php mam gotowy - przekazuje article_id i wypisuje mi pełny artykuł o takim ID)

Napisałem coś takiego :


function pokazWiecej() {

$.post("caly.php", {
id: 7
// nie wiem jak do id zapisać vartość atrybutu article_id
},
function(response){

$(".leading-0").html(response);
}
);
}


oczywiście dałem onclick na linka Więcej no i działa ale nie wiem dokładnie jak wrzucać odpowiednią treść do odpowiedniego diva

np

<div class="leading-0" article_id="7">
TREŚĆ ARTYKUŁU ID 7
</div>

<div class="leading-1" article_id="8">
TREŚĆ ARTYKUŁU ID 8
</div>

Ten post edytował stania-pl 12.09.2012, 18:47:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kamil4u
post 12.09.2012, 18:55:15
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


1. Przypisujesz akcję do <a class="czytajwiecej" href="#">Wiecej</a> - $('.czytajwiecej').click
2. Przy kliknięciu w ciele funkcji this wskazuje na kliknięty element
3. Pobierasz rodzica tego elementu - $(this).parent
4. Gdy już masz rodzica pobierasz jego id - $(...)..attr('id')


--------------------
Go to the top of the page
+Quote Post
stania-pl
post 12.09.2012, 19:49:57
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 12.09.2012

Ostrzeżenie: (0%)
-----


Cytat(kamil4u @ 12.09.2012, 18:55:15 ) *
1. Przypisujesz akcję do <a class="czytajwiecej" href="#">Wiecej</a> - $('.czytajwiecej').click
2. Przy kliknięciu w ciele funkcji this wskazuje na kliknięty element
3. Pobierasz rodzica tego elementu - $(this).parent
4. Gdy już masz rodzica pobierasz jego id - $(...)..attr('id')


Dzięki za zainteresowanie

1. Przypisujesz akcję do <a class="czytajwiecej" href="#">Wiecej</a> - $('.czytajwiecej').click

Mam przypisane< a href="#" onClick="pokazWiecej();">Wiecej</a> - po kliknięciu uruchamiana jest funkcja pokazWiecej()


2. Przy kliknięciu w ciele funkcji this wskazuje na kliknięty element
3. Pobierasz rodzica tego elementu - $(this).parent
4. Gdy już masz rodzica pobierasz jego id - $(...)..attr('id')

W ten sposób mogę pobrać Id diva w którym kliknięto przycisk "Więcej" - tylko, że mi potrzeba pobrać nie div id tylko article_id - w jaki sposób to zrobić?


Ogólnie chciałbym aby to tak działało

klikamy "więcej" -> pobieramy id rodzica z article_id (nie z div id) -> otrzymujemy np id = 7 -> przesyłamy zmienną id do pliku caly.php -> w odpowiedzi (wysyłanie Post ajaxem) dostajemy pełny artykuł ktory muszę umieścić w divie ktory ma article_id="7"


W jaki sposób wrzucić coś za pomocą .html() posługując się tylko article id

Kod
<script>
function pokazWiecej() {

$.post("caly.php", {
id: 7
// nie wiem jak do id zapisać vartość atrybutu article_id $('article_id').text() questionmark.gifquestionmark.gif? - nie działa
},
function(response){

$("article_id='7'").html(response);
}
);
}
</script>


oczywiście taki kod nie działa.



Go to the top of the page
+Quote Post
qrooel
post 12.09.2012, 20:28:49
Post #4





Grupa: Zarejestrowani
Postów: 306
Pomógł: 42
Dołączył: 25.03.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. $(".jakas-klasa-css").click(function() {
  2. console.log($(this).attr('szukany-atrybut'));
  3. });


http://api.jquery.com/parents/
http://stackoverflow.com/questions/966408/...ent-of-a-parent
http://stackoverflow.com/questions/394470/...side-parent-div

Ten post edytował qrooel 12.09.2012, 20:31:09


--------------------
Strony WWW: http://arscreo.pl
Go to the top of the page
+Quote Post
grzes999
post 13.09.2012, 08:26:36
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

Ostrzeżenie: (0%)
-----


Masz gotowca tylko, że w Jqery i nie wiem czy na pewno będzie działał ale powinien.

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $(function () {
  3. $('.czytajwiecej').click(function() {
  4. $.ajax({
  5. type: "POST",
  6. url: "caly.php",
  7. data: { id: $(this).parent().attr('article_id') }
  8. }).done(function( dane ) {
  9. $(this).prev().html(dane)
  10. });
  11. });
  12.  
  13. })
  14.  
[JAVASCRIPT] pobierz, plaintext


Pisałem bez sprawdzania; ale może coś ci to pomoże. I pamiętaj o dołączeniu biblioteki do pliku

Ten post edytował grzes999 13.09.2012, 08:27:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:33