Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Javascript, kliknięcie na div
Cinnanical
post 19.04.2013, 12:56:08
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


Witam!

Mam sobie divy o charakterystycznym id każdy. Chciałbym, żeby po kliknięciu na tego diva, javascript coś zrobił.

Jak takie coś zrobić? Dodam że jestem prawie zielony w js
Go to the top of the page
+Quote Post
pitu
post 19.04.2013, 13:01:01
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


Np. tak:

http://jsfiddle.net/CMfP8/


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 13:33:40
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


Ok, dzięki. Podłączyłem sobie do tego ajaxa.

Mam taki kod w ajaxie $("#div").css("dsadsadsadsa");;

Zamiast tego div, chciałbym żeby załadowało mi nazwe diva(id), w którym jest ten skrypt js

Np.

mam

<div id="test"
onclick blabla

$("#[I TUTAJ TE ID TEGO DIVA").css("dsadsadsadsa");;

Żebym nie musiał wpisywać tego div, tylko żeby mi pobrało div tego diva , w ktorym jest ten kod.

Ciężko mi było to wytłumaczyć biggrin.gif

Ten post edytował Cinnanical 19.04.2013, 14:01:15
Go to the top of the page
+Quote Post
PrinceOfPersia
post 19.04.2013, 14:22:21
Post #4





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


Cytat
Podłączyłem sobie do tego ajaxa.

Mam taki kod w ajaxie $("#div").css("dsadsadsadsa");;

to nie AJAX, tylko jQuery.


--------------------
Go to the top of the page
+Quote Post
pitu
post 19.04.2013, 14:27:39
Post #5





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


Pisząc ajax i podając kod miałeś na myśli chyba jQuery?

Przykładowy kod:
http://jsfiddle.net/CMfP8/1/



--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 15:15:42
Post #6





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


Tak o jquery. No to nie działa: $(this).css("margin-left",(x+0)+"px");

Albo może źle chcę to zrobić. Ale tak czy siak, muszę pobrać sobie id tego obiektu, by wysłać do php.


A tak btw. spodobało mi się JQuery, i przy tym ajax. Chyba zacznę wdrążać do skryptów.

Ten post edytował Cinnanical 19.04.2013, 15:44:15
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 15:45:52
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


Musisz sprecyzować, na który element będzie działać funkcja, dopiero potem uzywasz this. Najlepiej nadaj wszystkim divom, w które można klikać jedną klasę, np:

  1. <div class="clickable" id="id1">...
  2. <div class="clickable" id="id2">...

a potem
  1. $(".clickable").click(function(){
  2. $(this).css('costam');
  3. var id_elementu = $(this).attr('id'); // to id kliknietego elementu
  4. })


Ten post edytował walkie 19.04.2013, 15:48:23
Go to the top of the page
+Quote Post
pitu
post 19.04.2013, 15:49:05
Post #8





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


http://jsfiddle.net/CMfP8/2/


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 16:05:23
Post #9





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


No szok. Nie działają oby dwa.

Mam wszystkie elementy w klasie "object"

Dam kod


  1. <div class="object" id="zly3"
  2.  
  3. onclick='
  4.  
  5. $.ajax({
  6. type: "POST",
  7. url: "blabla.php",
  8. data:"id",
  9. success: function(msg){
  10. if(msg){
  11.  
  12.  
  13.  
  14. tutaj dawałem wasz kod
  15.  
  16.  
  17. }
  18. }
  19.  
  20.  
  21. });'
  22.  
  23. style="
  24. tajne style">
  25. </div>
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 16:56:00
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


Jeśli juz nadaleś klasy wspólne elementom, to już nie musisz tego na onclicku robićsmile.gif
Napisz, co dokładnie chcesz osiągnąć. Jeśli chcesz wykonać skrypt blabla.php po kliknięciu na element(z tego wnioskuję, że do blabla.php przesyłasz id.), to spróbuj tego:

  1. <div class="object" id="zly3" style="tajne style"</div>
  2.  
  3. $(".object").click(function(){
  4. //$(this).css('costam');
  5. var id = $(this).attr('id'); // to id kliknietego elementu
  6. $.ajax({
  7. type: "POST",
  8. url: "blabla.php",
  9. data:id
  10. });
  11. })


Ten post edytował walkie 19.04.2013, 16:57:09
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 17:17:11
Post #11





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


No ja jestem chyba jakiś ciemny, bo to mi nie działa.

  1. onclick='
  2. $.ajax({
  3. type: "POST",
  4. url: "aaa.php",
  5. data:"id",
  6. success: function(msg){
  7. if(msg){
  8.  
  9.  
  10. alert("ok");
  11.  
  12. }
  13. }
  14.  
  15.  
  16. });
  17.  
  18.  
  19. '

Takie coś działa bez problemu
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 17:27:17
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


Ok, jaki błąd? Coś z konsoli js? Może daj skrypt js w document.ready... No i wciąż nie powiedziałeś co to ma robić, bo w twoim przykładzie ajaxem jako parametr przesylasz id, ale tylko jako string,
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 17:32:39
Post #13





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


To tak. Te obiekty, to są obrazki na mapie.

Gdy kliknie się na ten obrazek, wtedy chcę pobrać id tego obrazka, a w php sobie z nim robić co chcę , po tym właśnie id.
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 17:48:43
Post #14





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


To taki prosty przykład, który już musi działac:P
index.php:
  1. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
  2. <div class = 'clickable' id = "id1">click me 1</div>
  3. <div class = 'clickable' id = "id2">click me 2</div>
  4. <div class = 'clickable' id = "id3">click me 3</div>
  5. <div id = "kontener"></div>
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8. $(".clickable").click(function(){
  9. $.ajax({
  10. type: "POST",
  11. url: "blabla.php",
  12. data:{'id': $(this).attr('id')},
  13. success:(function(data){
  14. $("#kontener").html(data);
  15. })
  16. });
  17. })
  18. })

blabla.php
  1. <?php
  2. echo "id kliknietego diva:";
  3. echo($_POST['id']);
  4. ?>


Mam nadzieję, że wyjaśnia:)

Ten post edytował walkie 19.04.2013, 17:49:52
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 17:59:08
Post #15





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


I tak ma być! Działa, dziękuje. Może poprzednie skrypty też działały, bo tutaj też alert się nie pojawił, ale sprawdziłem czy na mail wyśle, i działa ; )
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 18:04:22
Post #16





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


W poprzednim chyba wkradł się błąd, bo data w ajaxie powinna byc w formacie {'pole1': wartosc, 'pole2': wartosc2} itd...
Go to the top of the page
+Quote Post
Cinnanical
post 19.04.2013, 19:39:42
Post #17





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


A jeszcze jedno pytanko ; )

W PHP mam kodzik, i tym postem w ajaxie wysyłam właśnie do tego pliku. Jak zrobić, że jak wyślę ten kod, to załaduje mi się plik php, tzn. pokaże mi się ten kod php.

W praktyce:

Klikam sobie na dany obrazek -> wysyła mi się te id diva -> w tym pliku co odbiera id, wykonuje mi się jakiś kod i chcę wyświetlić rezultat.

Domyślam się, że tutaj muszę coś dodać:
success:(function(data){
$("#contener").html(data);

blablalalalalaal
})

W kodzie php np. mam wyświetlanie obrazka.



Ten post edytował Cinnanical 19.04.2013, 19:40:42
Go to the top of the page
+Quote Post
walkie
post 19.04.2013, 21:32:34
Post #18





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2011

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


Generalnie juz nic nie musisz zmieniac. data w success to jest to, co produkuje sam plik blabla.php. Możesz to wrzucic do jakiegos diva(load, tak jak wczesniej zrobilem), możesz w alerta, cokolwiek. Jeśli chcesz zmienic cos do wyświetlenia, to zmien blabla.php, możesz wrzucic tam obrazek,robic tam skomplikowane oblicznia albo co tylko dusza zapragnie...
  1. <?php
  2. echo "id kliknietego diva:";
  3. echo($_POST['id']);
  4. echo "<br/><img style='width:100px;' src='http://fc08.deviantart.net/fs71/i/2012/102/4/3/pikach___err_homer____whatever_by_okofrancisco-d4vwrib.jpg'><br/>";
  5. $losowa = rand(0, 1000000000);
  6. echo 'losowa liczba:' . $losowa;
  7. ?>
Go to the top of the page
+Quote Post
Cinnanical
post 20.04.2013, 19:19:25
Post #19





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 17.04.2013

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


Obliczenia może mi i zrobi, ale nie wyświetla mi się to co dałem w php po kliknięciu. I jeszcze po co ten kontener?


Kod mam taki:

  1. $(document).ready(function(){
  2. $(".object").click(function(){
  3. $.ajax({
  4. type: "POST",
  5. url: "blablabla.php",
  6. data:{'id': $(this).attr('id')},
  7. success:(function(data){
  8. $("#contener").html(data);
  9. alert("Wyslalem id diva do php!");
  10. })
  11. });
  12. })
  13. })
  14.  




Ten post edytował Cinnanical 20.04.2013, 19:48:02
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: 4.05.2025 - 07:12