Potrzebuję wykonać zapytanie do bazy danych w momencie, gdy ktoś kliknie w pole textarea - będzie ono po prostu aktywne. chodzi o to, aby rozpoznać, że user w danym momencie odpisuje w temacie, a nie czyta go.
Jako, że na JS się nie znam to fajnie by było jakby ktoś rzucił jakimś przykładem :)
pozdr.
Java czy JavaScript?
JavaScript, chyba pomyliłem działy ;x
Wiesz, cudów nie ma. Jak nie umiesz pisać w jakimś języku to... w nim niczego za bardzo nie napiszesz ;). Jak chcesz gotowca, to masz zawsze dział Praca.
Musiałbyś poznać podstawową składnię JS. Posiąść trochę wiedzy o DOM, może jako ułatwiacz przydałaby Ci się tutaj biblioteka w stylu jQuery. By wykonać to, co chcesz, musiałbyś podpiąć się pod zdarzenie focus
elementu textarea
(jeśli chcesz wysłać zapytanie tylko przy pierwszym focusie, to mógłbyś użyć metody .one()
z jQuery). W obsłudze zdarzenia focus
słałbyś na serwer żądanie za pomocą Ajaxa. Serwer by to przechwytywał i wykonywał zapytanie do bazy danych.
oj nie przesadzajcie z tym działem praca - to jedna linia kodu z jQuery
$('#id').one('focus', function() { $.get('TUTAJ_URL_TWOJEGO_SKRYPTU') });
ten kod pośle zapytanie (sygnał) do skryptu na serwerze
jeżeli rzeczywiście masz problemy tylko z JS to tyle Ci wystarczy
// zamiast 'focus'
ja bym dał 'keypress'
- wtedy sygnał pójdzie po wpisaniu pierwszego znaku
Mam takie coś:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$().ready(function() {
$("textarea").bind({
keypress:function(event) {
var poletxt = '1';
try {
xml = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
xml = new XMLHttpRequest();
} catch(e) {
xml = null;
}
}
if (xml != null) {
xml.onreadystatechange = function() {
}
xml.open('POST', "test.php", false);
xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xml.send("id="+poletxt);
}
}
});
});
</script>
Ale cholernie długo to wszystko trwa i gubi literki po drodze...W pliku test.php mam połączenie z bazą i jedno zapytanie. Efekt jest taki, że jeśli wpiszę szybkim tempem tekst: "testtest" to efekt jest taki, że to ładuje się X sekund + gubi połowe liter po drodze...Da się to jakoś ogarnąć?
Przekopiuj to co dostałeś w poście wyżej - skoro nie umiesz i dostałeś gotowca, to po co kombinujesz?
Pisanie zapytań ajax w "czystym" XMLHttp mija się z celem jak i tak ładujesz jQuery.