🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #39730

Re: zmienna

#39730
From: Bogdan Blaszczak
Date: Sun, 30 Apr 2006 12:04
63 lines
3042 bytes
  qazzi napisał(a):
> ProbujÄ™ przekazac zmiennÄ… z js do php, doszedlem do tego punktu i nie wiem
> dlaczego to nie dziala , problem jak mi siÄ™ wydaje lezy w zmiennej tt ale nie
> mam pojęcia jak go poprawic. Moze tutaj ktos mi pomoze.
> Pozdrawiam
> 
> var tt=document.getElementById('ramka').contentWindow.document.body.innerHTML;
> 
> document.write("<form action=\"edytorek.php\" method=\"POST\" >");
> document.write("<input type=\"hidden\" name=\"tresc\" value=\"+ tt +"\">");
> document.write("<input name=\"wysylam\" type=\"submit\" value=\"wyslij\">");
> document.write("</form>");

Twoj problem to czas wykonania. Jesli uzywasz write, to znaczy ze 
przypisujesz wartosc podczas ladowania dokumentu. W tym czasie nie tylko 
nie ma pewnosci ze innerHTML 'czegostam' istnieje, ale nawet nie ma 
pewnosci, ze 'costam' juz istnieje.

Znacznie bezpieczniej bedzie jesli wartosc do hiddena przypiszesz w 
momencie wysylania formularza, czyli onsubmit

<form action="#" method="post" onsubmit="return przypisz(this)">
<input type="hidden" name="tresc">
<input type="submit">
</form>

W sekcji head masz funkcje
<script>
function przypisz(t){
  t.tresc=document....innerHTML
  return true
}
</script>

Oczywiscie w miejscu ... twoja 'sciezka obiektowa'

Nawet to rozwiazanie nie jest do konca pewne. Zauwaz ze w swoim skrypcie 
tworzysz polaczenie pomiedzy dwoma niezaleznymi dokumentami: dokument 
glowny i dokument w ramce.
Jaka masz gwarancje, ze w momencie gdy user kliknie 'submit', dokument w 
ramce bedzie juz zaladowany?
Idealnie by bylo, gdyby dokument w ramce 'powiadamial' dokument glowny, 
ze "juz jestem". Czyli dokument w ramce moglby np ustawic jakas flage w 
dokumencie glownym. Ten skrypt w dokumencie ramkowym:
<script>
onload=function(){window.parent.jestem=true}
</script>

A w dokumencie glownym w funkcji przypisz(), cos w stylu:
  if(window.jestem){
   t.tresc=document....innerHTML
   return true
  }
  else {
   alert('Poczekaj na zaladowanie ramki');
   return false;
  }

Zwrot true/false pozwala wyslac formularz lub powoduje wstrzymanie 
wykonania submita.

-- 
BlaTek
Technical Details
Message-ID: <e3296l$pp$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <e322jg$rfi$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Bogdan Blaszczak <blatek@UsuN-AntyspaMpoczta.wprost.pl>
Newsgroups: pl.comp.lang.javascript
Subject: Re: zmienna
Date: Sun, 30 Apr 2006 14:04:48 +0200
Organization: Disorganization Department
Lines: 63
Message-ID: <e3296l$pp$1@atlantis.news.tpi.pl>
References: <e322jg$rfi$1@inews.gazeta.pl>
NNTP-Posting-Host: ejc98.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1146398741 825 83.15.84.98 (30 Apr 2006 12:05:41 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sun, 30 Apr 2006 12:05:41 +0000 (UTC)
User-Agent: Thunderbird
X-Accept-Language: pl, en-us, en
In-Reply-To: <e322jg$rfi$1@inews.gazeta.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit