Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Przesyłanie zmiennej JavaScript między plikami
Forum PHP.pl > Forum > Przedszkole
elnino17
Witam smile.gif mam taki problem, chciałbym przesłać zmienną JavaScript pomiędzy dwoma plikami .html ?
Załóżmy, że mamy coś takiego:
pierwszy.html
  1. <form action="drugi.html" method="get">
  2. <input type="text" name="text1" id="text1">
  3. <button type="submit">Wyślij</button>
  4. </form>

i chciałbym odebrać to co wysłałem w drugi.html

w takiej postaci
drugi.html
  1. var zmienna1 = document.getElementById('text1').value;

Czy jest to możliwe i jak można to zrobić ?
timon27
drugi.html:
  1. var zmienna1 ='<?php echo $_GET['text1'];?>';
  2. </script>
elnino17
Zrobiłem tak i nie działa:

pierwszy.html
  1. <form action="drugi.php" method="get">
  2. <input type="text" name="text1" id="text1">
  3.  
  4. <input type="hidden" name="ukryty" id="ukryty">
  5. <button type="submit">Wyślij</button>
  6. </form>


drugi.php
  1. <!DOCTYPE HTML>
  2. var zmienna1 ='<?php echo $_GET['text1'];?>';
  3. document.write(zmienna1);
  4. </script>
  5. </body>
  6. </html>


Z konsili wyrzuciło:
  1. SyntaxError: missing ; before statement
  2. var zmienna1 ='<?php echo $_GET['text1'];?>';
PrinceOfPersia
do tego, do czego chcesz tego użyć, chyba wystarczy jak zrobisz zwykłe pole ukryte formularza <input type="hidden" name="costam" id="costam" value="twoja_wartosc"/>

Jeśli nie wystarczy, to możesz użyć localStorage:

pierwszy.html:
Kod
<script>
// zakladajac ze jest zaladowana biblioteka jQuery
$(function() {  
    $("#text1").change(function() {
        localStorage.setItem('text', this.value);
    });
});  
</script>
</head>
<body>

<form action="drugi.html" method="get">
     <input type="text" name="text1" id="text1">
     <button type="submit">Wyślij</button>
</form>


drugi.html:
Kod
var zmiennaLokalna = localStorage.getItem('text');

timon27
Skopiowałem te dwa kody i u mnie działa.
Więc albo:
- masz więcej kodu (stawiam coś przed liniką var zmiena=... bez zakończenia średnikiem)
albo:
- masz jakieś inne ustawienia serwera (spróbuj użyć innych cudzysłowie, bo ja użyłem dwa razy takiego samego)
albo:
- w polu text1 wpisałeś coś brzydkiego (zawierającego " albo ' albo coś w tym stylu
elnino17
Cytat(PrinceOfPersia @ 16.04.2014, 21:38:22 ) *
do tego, do czego chcesz tego użyć, chyba wystarczy jak zrobisz zwykłe pole ukryte formularza <input type="hidden" name="costam" id="costam" value="twoja_wartosc"/>

Jeśli nie wystarczy, to możesz użyć localStorage:

pierwszy.html:
Kod
<script>
// zakladajac ze jest zaladowana biblioteka jQuery
$(function() {  
    $("#text1").change(function() {
        localStorage.setItem('text', this.value);
    });
});  
</script>
</head>
<body>

<form action="drugi.html" method="get">
     <input type="text" name="text1" id="text1">
     <button type="submit">Wyślij</button>
</form>


drugi.html:
Kod
var zmiennaLokalna = localStorage.getItem('text');


Działa, mam jeszcze jedno pytanie, jak zrobić jeżeli w formularzu mam 2 pola tekstowe i żeby wyświetlało w drugi.html wartość var 1 i var 2, co zmienić w localStorage ?

Przykład:
pierwszy.html
  1. <form action="#" method="get">
  2. <input type="text" name="text1" id="text1">
  3. <input type="text" name="text2" id="text2">
  4. <button type="submit">Wyślij</button>
  5. </form>



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.