BienuSS
25.03.2018, 20:12:10
Czy jeśli dam do diva styl display none, to jest jakaś możliwośc żeby użytkownik zobaczył treśc diva ?
trueblue
25.03.2018, 20:13:28
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
25.03.2018, 20:15:33
To jak to zrobić? Diva wyświetlić normalnie a przy funkcji onclick() wprowadzić zawartosć ? Tylko nie mam pojęcia jaką funkcją to zrobic
trueblue
25.03.2018, 20:19:41
Ale co to da, że wprowadzisz zawartość po kliknięciu?
BienuSS
25.03.2018, 20:23:20
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
25.03.2018, 20:25:52
A nie możesz wylosować, dodać i pokazać obrazki w momencie kliknięcia? Muszą być tam wcześniej?
BienuSS
25.03.2018, 20:31:10
No własnie nie

chce zeby było losowanie przy wczytywaniu strony
A jakby zrobić tak:\
zmienna z php > js
w js inner html po onclicku

?
trueblue
25.03.2018, 20:34:03
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
25.03.2018, 20:38:08
Chodzi o to że przed kliknieciem są podane hasze do kazdego pola, zeby nie bylo ze jest cos manipulowane przy losowaniu
trueblue
25.03.2018, 20:41:23
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
25.03.2018, 20:53:48
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
25.03.2018, 21:04:43
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
25.03.2018, 22:31:34
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
26.03.2018, 07:26:51
To co chcesz ukryć przed użytkownikiem?
BienuSS
26.03.2018, 09:28:28
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
26.03.2018, 10:04:25
Odpowiedź podałem Ci w poście #12.
nospor
26.03.2018, 10:47:25
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
26.03.2018, 11:07:30
Bo jak dobrze rozumiem, autor nie chce aby obrazki były widoczne (nawet w drzewie DOM) przed kliknięciem odpowiedzi.
nospor
26.03.2018, 11:15:25
Ah... taki bajer. No to fakt, trza sie bawic jak napisales
BienuSS
28.03.2018, 20:41:43
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 ?
<button onclick="pokaz()">Click</button>
<div id="obrazek"></div>
<?
$b = ;//losuje zmienna
?>
<script type="text/javascript">
function pokaz(){
document.getElementById("obrazek").innerHTML= a}
</script>
trueblue
28.03.2018, 20:45:23
W źródle strony będzie widoczna wartość, którą chcesz wstawić.
BienuSS
28.03.2018, 21:39:21
Czyli tak jak mówiłeś mam dwie opcje:
1.losować przy klikaniu pola
2. bawić sie z Ajaxem
?
trueblue
28.03.2018, 21:47:02
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
28.03.2018, 22:12:32
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
28.03.2018, 22:15:11
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
28.03.2018, 22:19:15
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
29.03.2018, 07:31:46
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
29.03.2018, 12:33:15
Narazie mam tak w osobnym pliku php losuje mi zmienną $d;
function show() {
$.get("random.php", function(<?echo $d;?>){
alert("Data: " + <?echo $d;?>;);
});
}
I nie wiem jak tą zmienną wprowadzić do funkcji $get
trueblue
29.03.2018, 12:35:22
A po co chcesz wprowadzać z powrotem do skryptu zmienną, którą zwrócił skrypt PHP?
BienuSS
29.03.2018, 12:50:33
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
29.03.2018, 13:07:55
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
29.03.2018, 13:09:11
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
<script type="text/javascript"> function show(){
$.ajax({
type: "GET",
url: "random.php",
async: false,
success: function(data){
alert("Data: " + data;);}
});
}
<button id="button" onclick="show()">
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
29.03.2018, 13:21:00
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
29.03.2018, 13:22:56
W php mam dać echo $d; czy return $d; ?
Skrypt wygląda aktualnie tak:
function show(){
$.ajax(
{
url: 'random.php',
async: false,
method: 'get',
success: function(data)
{
zmienna = "Wynik to:" + data;
}
});
alert(zmienna);
}
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

)))))))
nospor
29.03.2018, 13:51:02
alert ma byc w SUCCESS a nie chen poza tym
BienuSS
29.03.2018, 13:52:19
Narazie to tylko chciałem żeby wgl zwracało mi zmienną

, teraz zostaje mi tylko jak zrobić z 2 zmiennymi które zwraca
trueblue
29.03.2018, 14:06:26
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
29.03.2018, 14:08:42
Czyli zmienne w php zamienic na json, wtedy mam możliwośc odebrania kilku zmiennych
nospor
29.03.2018, 14:09:50
tak
BienuSS
29.03.2018, 14:13:56
Po dłuższej przeprawie mam wszystko czego potrzebuje, wszystko działa, dzięki za poświęcony czas na nauke żółtodzioba
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.