Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywoływanie funkcji javaScript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
frankiejojo
Witam,
Usiłuję napisać program, który przeładuje mi stronę i uruchomi na tej nowej stronie funkcję, która z kolei umieści fragment kodu.
W skrócie - jak klient zakończy edycję swojej oferty by mógł wrócić do listy swoich ofert.
Mam 3 pliki
- panel.php
- modyfikowanie.php
-listaOfert.php
W pliku panel.php umieszczona jest następująca funkcja js.
  1. function listaOfert(){
  2. var url = "user/listaOfert.php";
  3. var hr = new XMLHttpRequest();
  4. hr.open("POST", url, true);
  5. hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  6. hr.onreadystatechange = function() {
  7. if(hr.readyState == 4 && hr.status == 200) {
  8. var return_data = hr.responseText;
  9. document.getElementById("miejsce").innerHTML = return_data;
  10. }
  11. }
  12. hr.send(); // Actually execute the request
  13. document.getElementById("miejsce").innerHTML = "processing...";
  14. }

Funkcja ta po jej uruchomieniu w miejsce diva "miejsce" umieszcza zawartość pliku listaOfert.php (i działa bez zarzutów)

Drugi plik to modyfiikowanie - tu mamy następującą funkcję:
  1. function lista(){
  2. var miejsce = location.href;
  3. if(miejsce=="http://www.tradebest.pl/panel.php"){
  4. }else{
  5. location.href="http://www.tradebest.pl/panel.php";
  6. }
  7. listaOfert();
  8. }

Ta funkcja sprawdza gdzie jesteśmy i przenosi nas do strony panel.php po czym uruchamia funkcję listaOfert().

I teraz zagwozdka.
Jak uruchamiam funkcję listaOfert będąc w pliku panel.php to działa bez zarzutów,
Natomiast kiedy uruchomię ją będąc w pliku modyfikowanie.php pojawia mi się komunikat
InvalidStateError: XMLHttpRequest has an invalid context.

i nie bardzo wiem jak to poprawić.

trueblue
Jeśli przekierowałeś użytkownika na inny URL, to w jaki sposób miałaby się wykonać dalsza część kodu JS?

P.S. Ten if/else da się zastąpić po prostu if. I zamiast porównywać cały URL, sprawdź pathname. Zmienisz domenę i będziesz szukał przyczyny niedziałania.
frankiejojo
<div id="miejsce"></div> w którym ma się ukazać listaOfert.php znajduje się w pliku panel.php.
Z tego powodu wpierw chcę klienta przekierować do pliku panel.php a następnie uruchomić funkcję listaOfert, która wyświetli wewnątrz tego diva żądaną zawartość.
trueblue
Dzięki za wyjaśnienie, ale to chyba Ty nie rozumiesz, że kiedy przekierowujesz klienta na inny adres, to dalsza część kodu JS nie wykona się.
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-2020 Invision Power Services, Inc.