

Odovzdávanie parametrov druhému oknu v PHP
Prajem všetkým pekný Nový rok a hneď začnem otázkou. Určite mnohí poznáte rozhranie OrangePortal so službou Môj Assistent. Ak niekomu chcete poslať SMS, tak sa to robí tak, že vo formulári zadáte text SMS a telefónne číslo. Ak nechcete zadávať číslo, tak klepnete na odkaz, otvorí sa nové okno, v ňom si vyberiete príjemcu SMS a po potvrdení sa zobrazí jeho telefónne číslo v tomto prvom formulári a nové okno sa zavrie. Tento efekt potrebujem dosiahnuť v mojej PHP aplikácii. Potrebujem niečo zadať v novom okne s tým, že sa to vloží do hlavného okna do políčok formulára. Viete mi niekto poradiť ako to urobiť, prípadne ako to nazvať, aby som aspoň mal predstavu ako to nájsť cez Google?
Řekl bych, že to je javascriptové řešení. PHP se na to nehodí. Koukni do zdrojáku na Orangeportal.
Skúsim.
Ještě tady nějaké odkazy:
http://interforum.interval.cz/ShowPost.aspx?PostID= 17968
http://diskuse.jakpsatweb.cz/index.php?action=vthre ad&forum=8&topic=59205
http://forum.builder.cz/read.php?26,2014174,2014174 ,quote=1
další viz Google: javascript předání proměnné
Pomocou PHP urcite nie. Mozes to urobit aj takym sposobom, ze zavolas cez javascript vytvorenie noveho okna:
V otvorenom okne na prislusny objekt zavolas javascriptovinu na ziskanie objektu, cez ktory sa vytvorilo okno:
Tymto sposobom dokazes urobit veeeeeeeelmi krasne veci...
edit: po precitani losovho prispevku som si uvedomil, ze tento priklad je naozaj len pre IE (zabudol som to napisat...)
Funkcia showModalDialog je IE only fičúra, ktorá je síce pekná, ale bez nejakej náhrady pre ostatné prehliadače nemá na webe zmysel.
V JavaScripte môžeš otvoriť nové okno metódou window.open a v ňom môžeš pristupovať k oknu, ktoré ho otvorilo, prostredníctvom vlastnosti window.opener.
Nefungovalo by jednoduchšie riešenie? window.open sa dá brať ako popup a to môže prehliadač stopnúť. Škúšam toto a nefunguje to (neprepíše hodnotu text1):
aaa.htm
bbb.htm
Na pristupovanie k oknu používaš window.parent namiesto opener. V parent je rodičovské okno v prípade, že je obsah v (i)frame. V opener je okno, ktoré otvorilo dané okno.
Nefunguje ani tak.
Edit: Oprava, nefunguje to len v Opere. Vedel by niekto poradiť čo s tým? Potrebujem to rozchodiť v nej.
Operu nemám momentálne k dispozícii, ale určite tam je niekde konzola JavaScriptu, ktorá ti napíše presne, kde je problém.
Skúsil by som nahradiť document.form1 za document.forms.form1.
Konzola mi napísala toto, ale som z toho vedľa. Nechápem, čo má za problém, keďže objekty existujú.
To mi neberie už žiadny prehliadač. Nie náhodou toto?
Ale toto je ekvivalentný zápis.
Skús si prejsť tie stránky validátorom, či tam nie je nejaká iná chyba, kvôli ktorej potom Opera nevie nájsť ten formulár.
Tak to máš nejaký iný prehliadač, než všetky, s ktorými som sa doteraz stretol.
Ekvivalentný zápis to je, keď to tam dáš ako reťazec, nie ako premennú.
Beriem späť, to mi funguje, asi som to mal vtedy zle refreshnuté.
Áno, malo to byť v úvodzovkách, zabudol som ich len napísať.