Thread View: pl.comp.lang.javascript
14 messages
14 total messages
Started by Renke
Sun, 05 Sep 2010 13:45
Przeładowanie formularzem i problem
Author: Renke
Date: Sun, 05 Sep 2010 13:45
Date: Sun, 05 Sep 2010 13:45
29 lines
2238 bytes
2238 bytes
Programuje w PHP i teraz chciałem pobawić się javascriptem, napotkałem
na problem przy przeładowaniu strony za pomocą formularza (zrobiłem
zakłądki - tabs). Mój skrypt:
<script type="text/javascript">
function klik(id) {
var e = document.getElementById(id);
if( e == foo1 )
{ e.style.display = 'block';
document.getElementById('foo2').style.display = 'none';}
if( e == foo2 )
{ e.style.display = 'block';
document.getElementById('foo1').style.display = 'none';}
}
</script>
<a href="#" onclick="klik('foo1')">Click here1</a>
<a href="#" onclick="klik('foo2')">Click here 2</a>
<div id="foo1">This is foo1</div>
<div id="foo2" style="display:none;">
This is foo2
<form><input type="submit" value="Submit" name="B1"></form></div>
Jeśli w foo2 przeładuje buttonem formularz to automatycznie włączy mi
się zakładka 'foo1'. Czy jest jakaś metoda podtrzymania zmiennej 'foo2'
po przeładowaniu ? W php zrobiłbym to najprościej przekazaniem GET w
linku, może javascript daje inne możliwości ?
m.
Re: Przeładowanie formularzem i problem
Author: NKAB -
Date: Tue, 07 Sep 2010 08:17
Date: Tue, 07 Sep 2010 08:17
40 lines
2262 bytes
2262 bytes
Renke <niemaemaila@o2.pl> napisał(a):
> Programuje w PHP i teraz chciałem pobawić się javascriptem, napotkałem
> na problem przy przeładowaniu strony za pomocą formularza (zrobiłem
> zakłądki - tabs). Mój skrypt:
>
> <script type="text/javascript">
> function klik(id) {
> var e = document.getElementById(id);
> if( e == foo1 )
> { e.style.display = 'block';
> document.getElementById('foo2').style.display = 'none';}
> if( e == foo2 )
> { e.style.display = 'block';
> document.getElementById('foo1').style.display = 'none';}
> }
> </script>
> <a href="#" onclick="klik('foo1')">Click here1</a>
> <a href="#" onclick="klik('foo2')">Click here 2</a>
>
> <div id="foo1">This is foo1</div>
> <div id="foo2" style="display:none;">
> This is foo2
> <form><input type="submit" value="Submit" name="B1"></form></div>
>
> Jeśli w foo2 przeładuje buttonem formularz to automatycznie włączy mi
> się zakładka 'foo1'. Czy jest jakaś metoda podtrzymania zmiennej 'foo2'
> po przeładowaniu ? W php zrobiłbym to najprościej przekazaniem GET w
> linku, może javascript daje inne możliwości ?
>
> m.
Rozumiem, że chodzi o pozostanie usera w opcji przed refreszem?
Wydaje mi się, że tylko poratują cię ciastka i to te w JS.
Andrzej.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Przeładowanie formularzem i problem
Author: A.L.E.C
Date: Tue, 07 Sep 2010 08:31
Date: Tue, 07 Sep 2010 08:31
11 lines
1317 bytes
1317 bytes
On 07.09.2010 10:17, NKAB - wrote: > Rozumiem, że chodzi o pozostanie usera w opcji przed refreszem? > Wydaje mi się, że tylko poratują cię ciastka i to te w JS. Można jeszcze stan trzymać w ukrytym polu formularza. -- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl Roundcube Webmail Developer http://roundcube.net
Re: Przeładowanie formularzem i problem
Author: NKAB -
Date: Wed, 08 Sep 2010 08:25
Date: Wed, 08 Sep 2010 08:25
14 lines
1119 bytes
1119 bytes
A.L.E.C <alec1@poczta.onet.pl> napisał(a): > > Można jeszcze stan trzymać w ukrytym polu formularza. > Chyba nie bo przeładowanie zmieni stan tego inputa. Andrzej. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Przeładowanie formularzem i problem
Author: A.L.E.C
Date: Wed, 08 Sep 2010 08:35
Date: Wed, 08 Sep 2010 08:35
14 lines
1480 bytes
1480 bytes
On 08.09.2010 10:25, NKAB - wrote: >> Można jeszcze stan trzymać w ukrytym polu formularza. > > Chyba nie bo przeładowanie zmieni stan tego inputa. No w samym js z inputem się nie da, ale można go obsłużyć w PHP i przy ponownym wyświetleniu strony ustawić na tą samą wartość, a później odczytać ją w js. -- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl Roundcube Webmail Developer http://roundcube.net
Re: Przeładowanie formularzem i problem
Author: Renke
Date: Thu, 09 Sep 2010 11:45
Date: Thu, 09 Sep 2010 11:45
15 lines
1667 bytes
1667 bytes
W dniu 2010-09-08 10:35, A.L.E.C pisze: > On 08.09.2010 10:25, NKAB - wrote: > >>> Można jeszcze stan trzymać w ukrytym polu formularza. >> >> Chyba nie bo przeładowanie zmieni stan tego inputa. > > No w samym js z inputem się nie da, ale można go obsłużyć w PHP i przy > ponownym wyświetleniu strony ustawić na tą samą wartość, a później > odczytać ją w js. > W php tylko sesją lub $_get chyba, że jest inne rozwiązanie ? m.
Re: Przeładowanie formularzem i problem
Author: NKAB -
Date: Fri, 10 Sep 2010 07:22
Date: Fri, 10 Sep 2010 07:22
25 lines
1639 bytes
1639 bytes
Renke <niemaemaila@o2.pl> napisał(a): > W dniu 2010-09-08 10:35, A.L.E.C pisze: > > On 08.09.2010 10:25, NKAB - wrote: > > > >>> Można jeszcze stan trzymać w ukrytym polu formularza. > >> > >> Chyba nie bo przeładowanie zmieni stan tego inputa. > > > > No w samym js z inputem się nie da, ale można go obsłużyć w PHP i przy > > ponownym wyświetleniu strony ustawić na tą samą wartość, a później > > odczytać ją w js. > > > > W php tylko sesją lub $_get chyba, że jest inne rozwiązanie ? > > m. Chętnie zobaczyłbym działający przykład. Andrzej. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Przeładowanie formularzem i problem
Author: A.L.E.C
Date: Fri, 10 Sep 2010 09:34
Date: Fri, 10 Sep 2010 09:34
25 lines
1885 bytes
1885 bytes
On 10.09.2010 09:22, NKAB - wrote: >>>>> Można jeszcze stan trzymać w ukrytym polu formularza. > > Chętnie zobaczyłbym działający przykład. Przecież to podstawy. W formularzu dodajesz <input type="hidden" name="selectedtab" value="0"> Po stronie Javascript masz: - w onload (albo wcześniej) odczytujesz value inputa, jeśli inna niż 0 przechodzisz do właściwego taba. - przy każdym kliku w tab aktualizujesz value inputa. Po stronie PHP masz: - przy zapisie formularza, odczytanie wartości POST/GET inputa (i ewentualny zapis do sesji) - przy wyświetlaniu formularza ustawienie value inputa. -- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl Roundcube Webmail Developer http://roundcube.net
Re: Przeładowanie formularzem i problem
Author: NKAB -
Date: Mon, 13 Sep 2010 07:27
Date: Mon, 13 Sep 2010 07:27
37 lines
2149 bytes
2149 bytes
A.L.E.C <alec1@poczta.onet.pl> napisał(a): > On 10.09.2010 09:22, NKAB - wrote: > > >>>>> Można jeszcze stan trzymać w ukrytym polu formularza. > > > > Chętnie zobaczyłbym działający przykład. > > Przecież to podstawy. > > W formularzu dodajesz > <input type="hidden" name="selectedtab" value="0"> > > Po stronie Javascript masz: > - w onload (albo wcześniej) odczytujesz value inputa, jeśli inna niż 0 > przechodzisz do właściwego taba. > - przy każdym kliku w tab aktualizujesz value inputa. > > Po stronie PHP masz: > - przy zapisie formularza, odczytanie wartości POST/GET inputa (i > ewentualny zapis do sesji) > - przy wyświetlaniu formularza ustawienie value inputa. > Ale mnie chodzi o praktyczny przykład. Tak też kiedyś kombinowałem ale mi to nie działało natomiast bez zarzutu i bardzo prosto działa w JS. Jak to nie tajemnica to daj treść plików. W moim rozwiązaniu mam 3 listboxy i każdy z nich ma być na tej samej pozycji po przeładowaniu co przed. Andrzej. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Przeładowanie formularzem i problem
Author: A.L.E.C
Date: Mon, 13 Sep 2010 08:44
Date: Mon, 13 Sep 2010 08:44
20 lines
1865 bytes
1865 bytes
On 13.09.2010 09:27, NKAB - wrote: > Ale mnie chodzi o praktyczny przykład. > Tak też kiedyś kombinowałem ale mi to nie działało > natomiast bez zarzutu i bardzo prosto działa w JS. > > Jak to nie tajemnica to daj treść plików. Nie mam gotowca, ale to podstawy są. > W moim rozwiązaniu mam 3 listboxy i każdy z nich > ma być na tej samej pozycji po przeładowaniu co przed. Mowa była o zakładkach. Chodzi o pola typu SELECT? Co za problem ustawić value w momencie wyświetlania strony? DO tego akurat JS nie trzeba. -- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl Roundcube Webmail Developer http://roundcube.net
Re: Przeładowanie formularzem i problem
Author: NotBear
Date: Mon, 13 Sep 2010 19:06
Date: Mon, 13 Sep 2010 19:06
8 lines
1390 bytes
1390 bytes
W dniu 2010-09-13 10:44, A.L.E.C pisze: > [...]Mowa była o zakładkach. Chodzi o pola typu SELECT? Co za problem ustawić > value w momencie wyświetlania strony? Problem jest, bo SELECT nie ma value ;-) -- NotBear
Re: Przeładowanie formularzem i problem
Author: Artur Maśląg
Date: Mon, 13 Sep 2010 20:07
Date: Mon, 13 Sep 2010 20:07
9 lines
1527 bytes
1527 bytes
W dniu 2010-09-13 21:06, NotBear pisze: > W dniu 2010-09-13 10:44, A.L.E.C pisze: >> [...]Mowa była o zakładkach. Chodzi o pola typu SELECT? Co za problem >> ustawić >> value w momencie wyświetlania strony? > > Problem jest, bo SELECT nie ma value ;-) A SELECTED to co to jest?
Re: Przeładowanie formularzem i problem
Author: NotBear
Date: Mon, 13 Sep 2010 20:11
Date: Mon, 13 Sep 2010 20:11
7 lines
1341 bytes
1341 bytes
W dniu 2010-09-13 22:07, Artur Maśląg pisze: > A SELECTED to co to jest? Atrubut OPTIONa -- NotBear
Re: Przeładowanie formularzem i problem
Author: NKAB -
Date: Wed, 15 Sep 2010 08:21
Date: Wed, 15 Sep 2010 08:21
126 lines
3892 bytes
3892 bytes
Myślałem, że podpatrzę jak to robią inni ale jednak wszyscy się wstydzą.
Ja się nie wstydzę i chociaż to NTG to pokażę swój kod.
Osobiście uważam, że ciastka w JS są lepsze, nie takie himeryczne jak
rozwiąznia z inputem i kodem w php.
-------------
Plik nr 1 "session1.php":
<?
session_start(); // to musi
być na szczycie
header('Content-type: text/html; charset=UTF-8'); // to jako nastepne
echo "<br>Przekazywanie zmiennych w .php<br><br>";
if(!isSet($zm1))
session_register('zm1');
if(!isSet($zm2))
session_register('zm2');
foreach($_GET as $i => $value)
echo "w_GET: ".$i." value=".$value."<br>";
foreach($_POST as $i => $value)
echo "w_POST: ".$i." value=".$value."<br>";
?>
<html>
<body>
<form id="f1" type="action" action="?" method="get">
<!-- tu mozna wyslac tylko metoda GET -->
<input id="i1" name="zm1">
<button onClick="submit()">Click...</button>
</form>
<select id="s1" size=10 onChange="foo1()">
<option>aaa</option>
<option>bbb</option>
<option>ccc</option>
<option>ddd</option>
</select>
<br>
<form id="f2" type="action" action="session2.php" method="post">
<!-- tu da sie wysylac zarowno metoda POST jak i GET -->
<input id="i2" name="zm2" value="123Ä…Ä…Ä…">
<button onClick="submit()">submit...</button>
</form>
<br>
<script>
zm1="<? echo $_GET['zm1']; ?>";
s1.selectedIndex=parseInt(zm1);
s1.options.selected=true;
foo1()
function foo1()
{
f1.i1.value="<? echo $zm1; ?>";
f1.i1.value=s1.selectedIndex;
}
</script>
</body>
</html>
--------
Plik nr 2 "session2.php":
<?
header('Content-type: text/html; charset=UTF-8');
echo "session2.php...<br>";
foreach($_GET as $i => $value)
echo "w_GET: ".$i." value=".$value."<br>";
foreach($_POST as $i => $value)
echo "w_POST: ".$i." value=".$value."<br>";
if(isSet($zm1))
$zm1=$_POST['zm1'];
if(isSet($zm2))
$zm2=$_POST['zm2'];
echo "zm1=".$zm1."<br>zm2=".$zm2."<br>";
?>
-----------
Dla uzupełnienia dla początkujących. Wszystko co w pliku .php ma
zanczniki html jest wysyłane z serwera do przeglądarki internauty
a reszta, czyli między zancznikami <? ... ?> jest wykonawana
wyłacznie na serwerze.
Strasznie nie lubię określeń "po stronie klienta, po stronie serwera",
to dobre w odniesieniu do rysunków.
Tak zapytam z cekawości mimo, że NTG czy jest w php instrukcja, która
wykonywałaby kod "session2.php" w tle czyli bez pokazywania okna a
efekty z "echo..." jako następne linie w "session1.php"?
Andrzej.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads