Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: otwieranie okna i dopisywanie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Apo
Witam

Chcialem sobie napisać debug do orma ale mam kilka problemow. Tresc zapytania chce aby była wyswietlana w nowym oknie (tylko 1). Wiec mam kod:

  1. <script type='text/javascript'>\n
  2. DebugWindow=window.open('','','width='+400+',height='+300+',toolbar=no,directories=no,menubar=no,locations=no,status=no,scrollbars=yes,resi
    zable=yes,fullscreen=no');\n
  3. DebugWindow.document.open();\n";
  4. DebugWindow.document.writeln("'.$value.'<br/>");'."\n"; // w foreach dodaje zapytania do wyswietlenia
  5. DebugWindow.document.close();
  6. DebugWindow.focus();


No i mam taki problem ze jesli utworze kilka obiektow orma to on takze wyswietli mi kilka okien z zapytaniem. Cały ten kod jest generowany w php i wyswitlany.
Mam pytanie jak sprawdzic w js czy okno juz jest zdefiniowane, jesli tak to dopisze do niego zapytanie orma, a jesli nie to utworzy takie okno z ta trescią ?

Pozdrawiam
pbnan
Rozumiem, że dla każdego obiektu ORM wypisujesz ten kod, tak?
Więc czy nie możesz zrobić tego inaczej, mianowicie: najpierw wyświetlasz ten kod:
  1. <script type='text/javascript'>\n
  2. DebugWindow=window.open('','','width='+400+',height='+300+& #39;,toolbar=no,directories=no,menubar=no,locations=no,status=no,scrollbars=yes,
  3. resizable=yes,fullscreen=no');\n
  4. DebugWindow.document.open();\n";

Później dla każdego obiektu dajesz ten foreach + writeln w JS, a na sam koniec zamykasz:
  1. DebugWindow.document.close();
  2. DebugWindow.focus();

? (<- pytajnik mi się zgubił biggrin.gif)
Apo
Nie ponieważ jesli np przed 1 obiektem orma a 2 wyswietle jakąs część strony to ona tez tam będzie, a ten debug jest porozrzucany po calej stronie...
revyag
Kod
<script type="text/javascript">
if(okno) {
     //dopisywanie
} else {
    okno=window.open(....)
}
</script>
Apo
Cytat(revyag @ 31.03.2007, 18:08:02 ) *
Kod
<script type="text/javascript">
if(okno) {
     //dopisywanie
} else {
    okno=window.open(....)
}
</script>

A jako moge dopisywac do okna ?
revyag
Tak jak w normalnym dokumencie tylko dodajesz jeszcze nazwę okna.
Kod
okno.document.getElementById('info').innerHTML += '<br />jakies info';


zakładam że w popupie będzie takie coś:
  1. <span id="info"></span>
pbnan
Cytat(revyag @ 1.04.2007, 23:26:01 ) *
Tak jak w normalnym dokumencie tylko dodajesz jeszcze nazwę okna.
Kod
okno.document.getElementById('info').innerHTML += '<br />jakies info';


zakładam że w popupie będzie takie coś:
  1. <span id="info"></span>

Prawdziwe dopisywanie robi się tak:
  1. <script type="text/javascript">
  2. if(okno) {
  3. okno.document.open();
  4. okno.document.write('Blablabla');
  5. okno.document.close();
  6. } else {
  7. okno=window.open(....)
  8. }
revyag
@pbnan - różnica w odniesieniu do metody podanej przeze mnie, według mnie żadna. Poza tym że masz dodatkowo dwie instrukcje.
pbnan
Cytat(revyag @ 15.04.2007, 00:39:12 ) *
@pbnan - różnica w odniesieniu do metody podanej przeze mnie, według mnie żadna. Poza tym że masz dodatkowo dwie instrukcje.

Jak to: żadna? blinksmiley.gif
W Twoim przypadku musisz mieć w oknie już coś (konkretnie kod "<span [...]"). I tu już się pojawiają dwa problemy:
a. trzeba tam jakoś ten tekst wpisać (np. za pomocą mojego kodu tongue.gif);
b. może ktoś nie chce korzystać z DOMa w ogóle?

Więc nie pisz, że żadnej różnicy nie ma, bo jest dość spora.
revyag
@pbnan: chodzi o dopisywanie. Czyli w oknie już coś będzie. Jakaś struktura. np. span snitch.gif
Więc lepiej dopisać to do istniejącej struktury snitch.gif
No ale Apo chyba już sobie z tym poradził.
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.