Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
Zdravím... potřeboval bych aby výběrem ze select se mi změnilo coocies... nechci ovšem klikat na žádný submit ale rovnou když vyberu jiný jazyk ze selectu tak aby se mi změnilo v coocies
<select name="jazyk"> <option value="cs">Česky</option> <option value="sk" selected="selected">Slovensky</option> </select> setcookie ("language", "$_post['jazyk']", time()+36000); |
||
jenikkozak Profil |
#2 · Zasláno: 9. 1. 2012, 11:51:51 · Upravil/a: jenikkozak
|
||
Fisak Profil |
#3 · Zasláno: 9. 1. 2012, 11:57:43 · Upravil/a: Fisak
dobře .. nevim jestli to dobře chápu ale (v js nemám zkušenosti)
<script> HTMLFormElement.submit() </script> <?php setcookie ("language", "document.forms["jazyk"].submit()", time()+36000); ?> <select name="jazyk"> <option value="cs" onsubmit="cs">Česky</option> <option value="sk" selected="selected" onsubmit="sk">Slovensky</option> </select> |
||
jenikkozak Profil |
#4 · Zasláno: 9. 1. 2012, 12:14:23 · Upravil/a: jenikkozak
Fisak:
A to jsi hodnotil i PHP? ;-) Chceš, aby to postupovalo takto: 1) načtení stránky 2) výběr položky ve formuláři 3) automatické odeslání formuláře (budou se ti hodit události, aby se to neposlalo bez výběru položky, ale ne onsubmit) 4) zpracování formuláře na serveru (uložení cookie). Tvé schéma (nebo co to má být) dělá v podstatě všechno v jednom kroku. Umíš (asi) vytvořit formulář v HTML a zpracovat jej v PHP. Jedinou změnu, kterou potřebuješ, je automatické odeslání formuláře po vybrání položky v selectu. |
||
Fisak Profil |
#5 · Zasláno: 9. 1. 2012, 12:17:07
dobře... zkusím to trochu předělat.. a použití onsubmit je správné nebo mám použít onclick nebo ještě něco jiného ??
|
||
jenikkozak Profil |
#6 · Zasláno: 9. 1. 2012, 12:34:31
<form id="id-formu"> <select name="jazyk" onchange="document.getElementById('id-formu').submit()"> <option value="cs">Česky</option> <option value="sk">Slovensky</option> <option value="ru">Rusky</option> </select> |
||
Fisak Profil |
#7 · Zasláno: 9. 1. 2012, 20:29:18
A co mám dát do tý fce ??
<script> function document.getElementById('id-formu') { ???? } </script> |
||
jenikkozak Profil |
#8 · Zasláno: 9. 1. 2012, 21:06:40
Fisak:
„A co mám dát do tý fce ??“ „????“ V t?o?m m?é?m k?ódu žádná funkce není. Proč jej nevyužiješ, když už jsem ti jej psal? To je hotová stránka, připiš konec formu, title a kódování a nic dál nemusíš řešit. (Taky zvládám narvat šest otazníků do příspěvku.) |
||
SeparateSK Profil |
#9 · Zasláno: 9. 1. 2012, 21:11:03
<form id="id-formu"> <select name="jazyk" onchange='var loc=this.options[selectedIndex].value;loc="?jazyk="+loc;location.href=loc'> <option value="sk">---</option> <option value="cs">Česky</option> <option value="sk">Slovensky</option> <option value="ru">Rusky</option> </select> <?php echo $_COOKIE[language]; ?> <?php if(isset($_COOKIE[language]))setcookie ("language", "$_GET[jazyk]", time()-36000); setcookie ("language", "$_GET[jazyk]", time()+36000); if(isset($_GET[jazyk])) echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; ?> |
||
Fisak Profil |
#10 · Zasláno: 9. 1. 2012, 21:12:09 · Upravil/a: Fisak
díky
|
||
Fisak Profil |
#11 · Zasláno: 10. 1. 2012, 10:29:10 · Upravil/a: Fisak
Zdravím ... ještě bych měl dotaz... mám fci lang_change() a ta by mi měla vypsat výběr jazyka kdekoliv na webu kde napíšu echo lang_change(); jen nevím jestli je tato fce správně....
<?php function lang_change() { if(isset($_GET['lang'])) echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; if($_COOKIE['language'] == "sk") { return " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"cs\">Česky</option> <option value=\"sk\" select=\"selected\">Slovensky</option> </select>"; } elseif($_COOKIE['language'] == "cs") { return " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"cs\" select=\"selected\">Česky</option> <option value=\"sk\">Slovensky</option> </select>"; } else { return " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"cs\">Česky</option> <option value=\"sk\">Slovensky</option> </select>"; } if(isset($_COOKIE['language'])) setcookie("language", $_GET['lang'], time()-36000); } ?> |
||
SeparateSK Profil |
#12 · Zasláno: 10. 1. 2012, 12:56:36 · Upravil/a: SeparateSK
Skús toto :
<?php function lang_change(){ if($_COOKIE['language'] == "sk") { echo " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"sk\">Vyberte si jazyk</option> <option value=\"cs\">Česky</option> <option value=\"sk\" select=\"selected\">Slovensky</option> </select>"; } elseif($_COOKIE['language'] == "cs") { echo " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"cs\">Vyberte si jazyk</option> <option value=\"cs\" select=\"selected\">Česky</option> <option value=\"sk\">Slovensky</option> </select>"; } else { echo " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"sk\">Vyberte si jazyk</option> <option value=\"cs\">Česky</option> <option value=\"sk\">Slovensky</option> </select>"; } if(isset($_GET['lang'])) { setcookie("language", $_GET['lang'], time()+36000); echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; } } lang_change(); echo $_COOKIE[language]; ?> Ten tvoj script (tvoja fukcia) neuklada cookie - iba ho maže :) A radšej tam nechaj to "Vyberte si jazyk" , lebo ak to tam nebude, tak češtinu uživatel zrejme nikdy nevyberie Mimochodom, na to aby si zmenil cookie nemusíš písať : time()-36000; jednoducho ten cookie prepíšeš s time()+36000; setcookie predsa znamená "Nastav cookie", tak ho to iba prenastaví |
||
Fisak Profil |
#13 · Zasláno: 10. 1. 2012, 14:22:22
koukni http://insignia.funsite.cz/home/ když změníš jazyk tak ti to stále vypisuje "cs"
|
||
SeparateSK Profil |
#14 · Zasláno: 10. 1. 2012, 18:16:07 · Upravil/a: SeparateSK
Skopiroval si ten môj kód celý ??? Lebo mne to na localhoste ide aboslutne bez problémov a Cookie sa mení.
Zvlášť dôležité je toto : if(isset($_GET['lang'])) { setcookie("language", $_GET['lang'], time()+36000); echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; } Mimochodom, stači aj iba: <?php function lang_change(){ echo " <form id=\"id-formu\"> <select name=\"jazyk\" onchange='var loc=this.options[selectedIndex].value;loc=\"?lang=\"+loc;location.href=loc'> <option value=\"sk\">Vyberte si jazyk</option> <option value=\"cs\">Česky</option> <option value=\"sk\" select=\"selected\">Slovensky</option> </select> "; if(isset($_GET['lang'])) { setcookie("language", $_GET['lang'], time()+36000); echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; } } lang_change(); echo $_COOKIE[language]; ?> |
||
Fisak Profil |
#15 · Zasláno: 10. 1. 2012, 18:31:36
zkopíroval sem to přesně jak si mi to napsal... :(
|
||
SeparateSK Profil |
#16 · Zasláno: 10. 1. 2012, 18:41:28 · Upravil/a: SeparateSK
Tak je asi problém niekde tam v
if(isset($_GET['lang'])) { setcookie("language", $_GET['lang'], time()+36000); echo "<script type=\"text/javascript\">location.href=document.referrer</script>"; } Logicky by sa stránka mala redirectnúť naspäť už so zmeneným jazykom a v zdrojovom kóde by sa malo nachádzať <script type="text/javascript">location.href=document.referrer</script> |
||
Fisak Profil |
#17 · Zasláno: 10. 1. 2012, 23:54:05
jestli spíš neni třeba problém v mod_rewrite v htaccessu ...
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$ RewriteRule ^(.+[^/])$ /$1/ [R=301] RewriteCond %{REQUEST_URI} !^/(_images|_uploads) [OR] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)?/?([^/]+)?/?$ /?page=$1&action=$2&run=$3 |
||
Časová prodleva: 12 let
|
0