Witam.
Pracuję nad stworzeniem wygodnej wyszukiwarki-słowniczka w moim edytorze plików działającym przez przeglądarkę.
U góry umieściłem pole 'Szukaj', obok przycisk wywołujący funkcję z AJAXem wczytującą dane z bazy MySQL i wyświetlającą wyniki w formie zakładek opartych o JS. Wszystko dzieje się w divie o id 'wyszukiwarka'. Zakładki służą do oddzielenia wyników - każda zakładka zawiera dane z innej tabeli w bazie danych.
Po kliknięciu na zakładkę powinna zmienić się zawartość tabeli - nazwijmy ją 'tabela_wynikow'. Zmianą zawartości tabeli zajmuje się funkcja, która jest zadeklarowana na samej górze pliku wywołującego.
Chciałbym, aby działało to w ten sposób: są sobie zmienne, zadeklarowane przed deklaracją funkcji zmieniającej, którym przypisywany jest cały kod HTML (divy itp), który będzie wstawiony do 'tabela_wynikow'. Klikając na zakładkę, wywołujemy funkcję ZmienTresc(nazwa_zmiennej_przechowujacej_HTML), która podmienia nam zawartość tabeli.
Problem polega na tym, iż owy HTML można przypisać dopiero w pliku PHP wywoływanym przez AJAX. Na razie wygląda on tak:
//...
echo "<script type='text/javascript'>
zakladka1 = '<div>...i tak dalej...</div>';
zakladka2 = '<div>...i tak dalej...</div>';
//...
</script>
Wydawałoby się, że wszystko gra, ale...
zmienna1 zadeklarowana przed funkcją zmieniającą (czyli tymczasowa var zmienna1 = ;) nie jest nadpisywana przed skrypt zawarty w pliku wywoływanym przez AJAX (kod powyżej). Po kliknięciu na zakładkę wyświetla się wielkie nic, czyli
(wartość przypisana do zmiennej przed wywołaniem skryptu AJAXa).
Moje pytanie brzmi: co zrobić, aby można było wywoływanym plikiem PHP zmienić wartość zmiennej z pliku wywołującego zadeklarowanej przed tym wywołaniem? Coś w tym stylu:
var zmienna1 = '';
var zmienna2 = '';
function wczytaj()
{
//stworzenie obiektu ajaxa i takie tam
ajax.open('GET','plik.php',false);
document.getElementById('wyszukiwarka').innerHTML = ajax.responseText;
}
a w pliku plik.php kod poprzedni.