HTML/PHP - link który nie powinien się otworzyć.

0

Witam

Mam taki dylemat, potrzebuję taki link na stronie, może być z użyciem HTML, PHP, który po kliknięciu wyśle na adres w linku konkretną komendę GET lub POST, ale nie otworzy mi się ten link na aktualnej stronie. Np jestem na stronie www.example.com/index.html i tam jest odnośnik zrobiony np tak:

<a href="http://192.168.0.0:81/test/turn_on">włącz</a>

I próbuje tak zrobić, aby po kliknięciu na ten link została wysłana na serwer o adresie 192.168.0.0 określona metoda, ale żeby dalej pozostać na stronie www.example.com/index.html Nie wiem czy dobrze nakreśliłem o co mi chodzi, bo potrzebuje takiej funkcjonalności do bardzo specyficznego zastosowania.

Z góry dziękuję za pomoc.

1

javascript - ajax lub ładowany w tle obrazek/iframe

0

Witam

Dzięki za podpowiedź, wystarczyło słowo klucz - javascript. Dalej już sam pogrzebałem w necie :) Co prawda w Javascript nic jeszcze nie robiłem, ale udało mi się coś stworzyć. Nie wiem czy rasowy programista od Javascript nie miałby czegoś do zarzucenia odnośnie konwencji pisania (tak jak C++ i polecenie goto) itd, ale tak czy siak działa. Na stronie z której nie chce się ruszać plik index.html wygląda tak:

<html>
<head>
<script type="text/javascript">
function doA()
{
	window.location = "http://192.168.1.24:81/secret/A";
	self.focus();
	return false;
}
function doClear()
{
	window.location = "http://192.168.1.24:81/secret/0";
	self.focus;
	return false;
}
function doB()
{
	window.location = "http://192.168.1.24:81/secret/B";
	self.focus;
	return false;
}

</script>
</head>

<body>

<a href="" onClick="doA()">JS A</a><br>
<a href="" onClick="doB()">JS B</a><br>
<a href="" onClick="doClear()">JS CLEAR</a>

</body>
</html>

Hmm, właśnie zacząłem to dalej testować, i jednak jakoś nie zawsze działa :( a w IE musiałem link poprawić aby href nie miał pustego stringa ale odnośnik "do siebie". Hmm, teraz klikam na te odnośniki i na drugim serwerze (192.168.1.24:81) nie widzę zmian... Chociaż jak wpisuje bezpośrednio w przeglądarkę cały adres http://192.168.1.24:81/secret/A to działa.

A nie, jednak działa, musiałem zrobić błąd gdzieś w skrypcie i się wykrzaczyło wszystko.

A jakie mogą być problemy jak komputer będzie zbyt wolny lub przeładuje się cała strona?
Bo mnie w zasadzie chodzi o to, by uruchamiając stronę na jednym serwerze, móc sterować urządzeniami wpiętymi do drugiego serwera (w tej samej sieci lokalnej), który działa na innym porcie (aby móc przekierować zapytania HTTP na port 81 na drugi serwer).

0

Chociaż po testach zauważyłem że czasami po kliknięciu nic się nie dzieje i trzeba kliknąć dwa lub trzy razy.
Może faktycznie może być problem w tym, że drugi serwer może być za wolny, bo ten drugi serwer to mikrokontroler
ATmega328 z kontrolerem ethernetowym ENC28J60, a jego max prędkość to 10Mbit/s :|

Dodano po kolejnych testach:

Po kolejnych testach stwierdzam, że z przeglądarką FireFox działa znacznie lepiej, prawie każde wywołanie tych funkcji
w Javascript daje efekt na serwerze. Natomiast w przypadku Opery totalna klapa, IE plasuje się tak pomiędzy z działaniem.
Może sęk w tym, że tak jak ja to zrobiłem, to jest jak przykład "jak nie należy tego robić" ? Bo w Firefoxie też nie działa na 100%.
A wolałbym mieć całkowitą pewność że jak w coś kliknę, to na pewno się to coś włączy (obsługę komunikatów zwrotnych, tzn aby
na głównym serwerze odbierać i przetwarzać odpowiedź serwera sterującego, zrobię w drugiej kolejności). I tutaj pojawia się druga
kwestia, jak do jakiejś zmiennej (np jak C-string w C/C++, ale w JS jest chyba klasa String?) wrzucić to co ten mniejszy serwer
nam da jako odpowiedź (czyli jakąś bardzo prostą stronę w html)? Żeby później skrypcik sobie przemielił tą stronę w HTMLu
i zinterpretował odpowiedź.

0

o matko, nie tak! zrób to ajaksem, a wcześniej przeczytaj co robi window.location.
zmieniasz adres strony na podany, a następnie anulujesz to zwracając false. to nie ma prawa działać.
przeczytaj http://www.xml.com/pub/a/2005/02/09/xml-http-request.html

jako src hrefa podajesz #, a metoda podpięta pod onclick ma zwracać false.

0

O dzięki, przynajmniej wiem jak takich rzeczy NIE NALEŻY robić :)
Przeglądałem wstępnie ten artykuł co podałeś w linku, jeszcze muszę
go przerobić i przeanalizować. Mam nadzieję że dzięki temu uzyskam
to o co mi chodzi :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1