Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmienne z formularza w pop-up do window.opener?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
luccassd
witam!
mam strone index.php z produktami /lista/ i w pop-upie popup.php otwierany opis pelny kazdego. w pop-upie jest input do wpisania ilosci i mozliwosc dodania do koszyka. po dodaniu pop-up ma sie zamykac a w oknie glownym ma sie otworzyc plik index.php z parametrem ?a=zapisz i php ma pobrac ilosc metoda post. wstepnie cos juz zrobilem ale dziala mi tylko pod IE i Opera. nie dziala pod Mozilla i Netscapem. prosze o pomoc smile.gif

index.php
  1. <script language="javascript" type="text/javascript">
  2. window.name="ksklep";
  3. function otworzOkno(url, width, height) {
  4. var Win = window.open(url,'_blank','width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no,status=yes' );
  5. }
  6. </head>
  7.  

  1. <?php
  2. switch ($_GET['a']) {
  3.  
  4. default:
  5. echo &#092;"<a href=\"javascript:otworzOkno('popup.php', 400, 400);\">otworz</a>\";
  6. break;
  7. case'zapisz':
  8. echo $_POST['var'];
  9. break;
  10. }
  11. ?>

  1. </body>
  2. </html>


popup.php
  1. <script language="javascript" type="text/javascript">
  2. function wyslij(form) {
  3. form.target = window.opener.name;
  4. form.submit();
  5. window.close();
  6. }
  7. </head>
  8.  
  9. <form method="post" action="index.php?a=zapisz" onsubmit="wyslij(this);">
  10. <input type="text" name="var">
  11. <br><br><input type="submit" value="zapisz">
  12. </form>
  13. </body>


z gory dziekuje,
lukasz
revyag
Nie jest to pewnie to co byś chciał uzyskać ale może do czegoś się przyda:

plik index.php
  1. <script language="javascript" type="text/javascript">
  2. window.name="ksklep";
  3. function otworzOkno(url, width, height) {
  4. var Win = window.open(url,'_blank','okno','width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no,status=yes' );
  5. }
  6. </head>
  7. <form id="of" action="index.php?a=zapisz" method="post">
  8. <input type="hidden" name="var" id="var">
  9. </form>
  1. <?php
  2. if(!isset($_GET['a'])){
  3. echo &#092;"<a href=\"javascript:otworzOkno('popup.php', 400, 400);\">otworz</a>\";
  4. }else{
  5. echo $_GET['a'],&#092;"<br>\";
  6. echo $_POST[&#092;"var\"];
  7. }
  8. ?>

popup.php
  1. <script language="javascript" type="text/javascript">
  2. function wyslij(){
  3. window.opener.document.getElementById("var").value=document.getElementById("var").value;
  4. window.opener.document.getElementById("of").submit();
  5. self.close()
  6. }
  7. </head>
  8. <input id="var" type="text" name="var">
  9. <input type="button" value="zapisz" onclick="wyslij()">
  10. </form>
  11. </body>

W pliku index.php jest dodatkowy formularz z polem hidden. To pole w popupie jest uzupełniane przez wartość z inputa w popupie. Następnie formularz w index.php jest submitowany z odpowiednim action i w $_POST["var"] jest to co chcesz smile.gif.
luccassd
dzieki za info. mysle ze ten kawalek kodu mi sie przyda:)

mam jeszcze jedno rozwiazanie zeby formularze dzialaly pod wszystkimi przegladarkami. w pliku popup.php trzeba modyfikowac funkcje wyslij aby wygladala:

  1. <script language="javascript" type="text/javascript">
  2. function wyslij(form) {
  3. form.target = window.opener.name;
  4. form.submit();
  5. setTimeout('window.close()', 1000);
  6. }


setTimeout pozwoli wszystkim przegladarkom wykonac form.submit() smile.gif
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.