Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS/AJAX] Nadpisywanie zmiennej JS
Forum PHP.pl > Forum > XML, AJAX > AJAX
QooBooS
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:
  1. //...
  2. echo "<script type='text/javascript'>
  3. zakladka1 = '<div>...i tak dalej...</div>';
  4. zakladka2 = '<div>...i tak dalej...</div>';
  5. //...
  6. </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:
Kod
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.
erix
Książkowy błąd: http://eriz.pcinside.pl/weblog/ajax-w-jque...script-218.html
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.