Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Display none
Forum PHP.pl > Forum > Przedszkole
BienuSS
Czy jeśli dam do diva styl display none, to jest jakaś możliwośc żeby użytkownik zobaczył treśc diva ?
trueblue
Tak. Do tego służy konsola przeglądarki, a dokładnie przeglądanie drzewa DOM.
Element nie może istnieć, wtedy nie będzie możliwości podejrzenia.
BienuSS
To jak to zrobić? Diva wyświetlić normalnie a przy funkcji onclick() wprowadzić zawartosć ? Tylko nie mam pojęcia jaką funkcją to zrobic
trueblue
Ale co to da, że wprowadzisz zawartość po kliknięciu?
BienuSS
Masz szachownice 4x4 pod która w kazdym polu znajduje sie inny obrazek wylosowany w php przy odswiezeniu strony za pomocą funkcji schuffle(), i użytkownik musi wybrac 1 pole pod którym nie wie co jest
trueblue
A nie możesz wylosować, dodać i pokazać obrazki w momencie kliknięcia? Muszą być tam wcześniej?
BienuSS
No własnie nie sad.gif chce zeby było losowanie przy wczytywaniu strony

A jakby zrobić tak:\
zmienna z php > js
w js inner html po onclicku questionmark.gif?
trueblue
Ale jaka to różnica? Prawdopodobieństwo trafienia w prawidłowy obrazek jest takie samo.
Losowanie możesz zrobić bezpośrednio w JS lub wstawiając odpowiedź z żądania ajax'owego.
BienuSS
Chodzi o to że przed kliknieciem są podane hasze do kazdego pola, zeby nie bylo ze jest cos manipulowane przy losowaniu
trueblue
To po kliknięciu wysyłaj hash pola na serwer, a odsyłaj wszystkie odpowiedzi (obrazki) wraz z prawidłową odpowiedzią. Wcześniej pokazuj tylko hashe, bo jak rozumiem chcesz je pokazać użytkownikowi.
BienuSS
Tak chce je pokazac uztkownikowi

Cytat(trueblue @ 25.03.2018, 21:41:23 ) *
To po kliknięciu wysyłaj hash pola na serwer, a odsyłaj wszystkie odpowiedzi (obrazki) wraz z prawidłową odpowiedzią


Nie wiem dokładnie o co ci chodzi,
trueblue
Hashe są powiązane z obrazkami, tak?
Jeśli tak, to wyświetlasz tylko hashe (które są w sesji), a kiedy ktoś kliknie na jedną z odpowiedzi, to wysyłasz poprzez Ajax jej hash. Na serwerze sprawdzasz, która odpowiedź miała hash i odsyłasz pary hash+źródło obrazka, a jedną z par oznaczasz jako prawidłową. Kiedy dostaniesz odpowiedź, to przypisujesz hashom na stronie obrazki (dodajesz je) i oznaczasz odpowiedzi jako prawidłowe/nieprawidłowe.
BienuSS
Chodzi mi o to że chce żeby i tak wszytskie obrazki sie wyświetlały i ten co został wybrany będzie powiekszony i wyswietlony
A hasze są tak że jest co ciąg i szyfrowany przez sha-256
trueblue
To co chcesz ukryć przed użytkownikiem?
BienuSS
Sorki zła konstrukcja zdania, chce żeby po kliknięciu któregos pola dopiero pokazywaly sie obrazki, tylko żeby pokazaly sie wszystkie obrazki a nie tylko ten na którego kliknelismy
trueblue
Odpowiedź podałem Ci w poście #12.
nospor
Nie bardzo rozumiem po co do tak prostej operacji jak wyswietlenie diva z obrazkami, dokladac AJAX itp.

Kod
jQuery(".klasa").click(function(){
jQuery("#id_diva_w_ktorym_sa_obrazki").show();
});

gdzie
klasa - klasa css, ktora zostala nadana kazdemu divowi na ktory chcesz kliknac by sie otworzyly obrazki
trueblue
Bo jak dobrze rozumiem, autor nie chce aby obrazki były widoczne (nawet w drzewie DOM) przed kliknięciem odpowiedzi.
nospor
Ah... taki bajer. No to fakt, trza sie bawic jak napisales smile.gif
BienuSS
Tylko wlasnie w jaki sposob zrobić żeby na dany hash przychodzila mi odpowiedz z tym hashem i jak to pozniej wprawić w diva

UP
a co myślicie o tym ?
  1. <button onclick="pokaz()">Click</button>
  2.  
  3. <div id="obrazek"></div>
  4. <?
  5. $b = ;//losuje zmienna
  6. ?>
  7.  
  8. <script type="text/javascript">
  9.  
  10. function pokaz(){
  11. var a = '<?echo $b;?>';
  12. document.getElementById("obrazek").innerHTML= a}
  13. </script>
  14.  
trueblue
W źródle strony będzie widoczna wartość, którą chcesz wstawić.
BienuSS
Czyli tak jak mówiłeś mam dwie opcje:
1.losować przy klikaniu pola
2. bawić sie z Ajaxem
?
trueblue
Jeśli obrazki mają być niewidoczne (nawet ich źródła) w źródle strony czy też poprzez konsolę przeglądarki, to opcja 2 - uzyskać ich źródła dopiero w momencie kliknięcia.
BienuSS
Okey a jakbym chciał zrobić że losuje mi przy kliknieciu, to w divie daje onclick="funkcja_js()" a w funkcji_js wywołuje funkcje php czy jak ?
trueblue
Jeśli to rozwiązanie ma się opierać o Ajax, to funkcja w JS ma wywołać żądanie ajax'owe, a to wywołuje skrypt PHP.
BienuSS
Niee teraz akurat chodzi mi o opcje że losowanie jest przy kliknięciu

EDIT
dobra poczytałem i widze że tego też nie zrobie bez Ajaxa
trueblue
Jeśli źródła obrazków będą dostępne na stronie, tak jak pokazałeś lub bezpośrednio w obrazkach, to nie potrzebujesz do tego Ajax.
BienuSS
Narazie mam tak w osobnym pliku php losuje mi zmienną $d;

  1. function show() {
  2.  
  3.  
  4. $.get("random.php", function(<?echo $d;?>){
  5. alert("Data: " + <?echo $d;?>;);
  6. });
  7.  
  8.  
  9. }
  10.  


I nie wiem jak tą zmienną wprowadzić do funkcji $get
trueblue
A po co chcesz wprowadzać z powrotem do skryptu zmienną, którą zwrócił skrypt PHP?
BienuSS
No chce żeby po kliknicie za pomocą get uruchomił sie skrypt random.php który losuje mi zmienna i pozniej tą zmienną wprowadzić do skryptu żeby za pomocą js ją wprowadzić w jakiś element html, dodam że z php chce pobrać 2 zmienne
trueblue
Tam gdzie robisz alert, tam pobierasz otrzymaną zmienną i robisz z nią co chcesz.
Jeśli chcesz przekazać do skryptu PHP jakieś zmienne, to albo przekazujesz je wraz z URL, albo jako parametr data: https://api.jquery.com/jquery.get/
BienuSS
tyle to wiem, ale mi cały czas chodzi o to jak pobrać tą zmienną do alertu, bo to co napisałem mi nic nie daje
  1. <head>
  2. <title>test</title>
  3.  
  4. </head>
  5. <body>
  6.  
  7.  
  8. <script type="text/javascript">
  9. function show(){
  10.  
  11. $.ajax({
  12. type: "GET",
  13. url: "random.php",
  14. async: false,
  15. success: function(data){
  16. alert("Data: " + data;);}
  17. });
  18.  
  19.  
  20. }
  21.  
  22.  
  23. <div id="spin-it">
  24.  
  25. <button id="button" onclick="show()">
  26. <b><i>Spin it</i></b>
  27. </button>
  28.  
  29. </div>
  30.  
  31.  
  32.  
  33. </body>
  34. </html>
  35.  


Mam coś takiego a konsola mi pokazuje:

Uncaught SyntaxError: missing ) after argument list

Uncaught ReferenceError: show is not defined at HTMLButtonElement.onclick


Wymiękam......
trueblue
Skoro wywołujesz skrypt PHP i ten ma coś zwrócić, to zwróć w nim to coś.

Sprawdzaj nawiasy i średniki. To są podstawy.
BienuSS
W php mam dać echo $d; czy return $d; ?
Skrypt wygląda aktualnie tak:
  1.  
  2. function show(){
  3.  
  4.  
  5.  
  6. $.ajax(
  7. {
  8. url: 'random.php',
  9. async: false,
  10. method: 'get',
  11. success: function(data)
  12. {
  13. zmienna = "Wynik to:" + data;
  14. }
  15. });
  16.  
  17. alert(zmienna);
  18.  
  19. }
  20.  


I wszystko działa oprócz pobrania tej zmiennej z php

EDIT

DZIAŁA!!!!!!!!!!!!!!!!!!!!!!!!! ile sie idzie powkurzać przy "próbowaniu" tworzenia tego typu kodu to japiernicze....
powyższy skrypt działa w php wystarczy wpisać echo $zmienna i tyle smile.gif)))))))
nospor
alert ma byc w SUCCESS a nie chen poza tym
BienuSS
Narazie to tylko chciałem żeby wgl zwracało mi zmienną smile.gif, teraz zostaje mi tylko jak zrobić z 2 zmiennymi które zwraca
trueblue
Nie ma znaczenia czy w PHP dodasz echo $zmienna, czy echo $d.
Po prostu miałeś błąd w skrypcie JS.

Alert Ci działa poza wywołaniem ajaxa, bo ustawiłeś żądanie na synchroniczne - zablokuje resztę skryptu, dopóki się nie wykona.

Zapoznaj się z formatem JSON.
BienuSS
Czyli zmienne w php zamienic na json, wtedy mam możliwośc odebrania kilku zmiennych
nospor
tak
BienuSS
Po dłuższej przeprawie mam wszystko czego potrzebuje, wszystko działa, dzięki za poświęcony czas na nauke żółtodzioba biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.