« 1 2 »
Autor Zpráva
Radek Z
Profil
Ahoj,
mám problém s formulářem. opět :-)
Potřeboval bych uložit proměnnou z formuláře (který je přes JS) do session php.
Je to prvek selectu s id a name. Nesetkal se tady s tím někdo už někdy?
Díky moc Radek
taurendilek
Profil
kazdy, pouzij ajax nebo vytvor skript s src a vloz co potrebujes pres GET(do url za otaznik).
vice google
Leo
Profil
No bezne se to dela odeslanim toho formulare :-) Leo
Radek Z
Profil
Jo promin, ja to napsal dost obecně. Přes ten get v url mi to právě nejde.
ale ve struktuře to mám asi takhle:

form

JS
přes js volby inputu - otevřu si selecty, navolím možnosti
konec JS

odeslat
/form
no a ty hodnoty ze selectu mi to neuloží
Leo
Profil
"no a ty hodnoty ze selectu mi to neuloží"

A jak je nacitate v PHP? Leo
Radek Z
Profil
odešlu form na stejnou stránku, na začátku stránky spustím session, tam uložím do SESSIONneco=name toho selectu, ale je to prázdný :-/
Radek Z
Profil
odešlu form na stejnou stránku, na začátku stránky spustím session, tam uložím do SESSIONneco=name toho selectu, ale je to prázdný :-/
Radek Z
Profil
herdeg, blbne mi net, proto ta stejná zpráva 2x
Leo
Profil
No to je hezky, a co takhle ukazka kodu (podstatne casti)? Leo
Radek Z
Profil
ok, ukazu:

<form name="neco" method="post" action="neco.php?hodnota=<? echo $hodnota;?>">

<input onclick="show_inner_advanced()" type="radio" name="p[norma]" value="1" pozn="0" >&nbsp;STO (ÈSN 732400) &nbsp; <input onclick="show_inner_advanced()" type="radio" name="p[norma]" value="2" pozn="1" >&nbsp;ÈSN EN 206-1 &nbsp; <input onclick="show_inner_advanced()" type="radio" name="p[norma]" value="3" pozn="2" >&nbsp;Ostatní &nbsp;
</td>

JS:


function show_inner_advanced()

{

//norma?
n = document.forms['wizardfrm'].elements['p[norma]'];
if (n[0].checked) norma = 1;
else if (n[1].checked) norma = 2;
else if (n[2].checked) norma = 3;


window.status = 'norma = ' + norma;
switch(norma) {
case 1 :
document.getElementById('inneradvanced').innerHTML = "<table width=\"300\" align=\"center\" class=\"hmenu1\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\
<tr>\
<td width=\"80\" class=\"textform\" >Tøída betonu</td>\
<td>\
\
<select id=\"trida_b\" name=\"p[trida]\" onChange=\"TypOnChange(this, \'- Všechno -\')\">\
<option value=\"\"></option> \
</select>\
</td>\
</tr>\
<tr>\
<td width=\"80\" class=\"textform\">Konzistence&nbsp;</td>\
<td>\
<select id=\"konz\" name=\"p[konzistence]\" >\
<option value=\"\">===== (moment prosím) =====</option> \
<option value=\"\"></option>\
</select> \
\
</td>\
</tr>\
<tr>\
<td width=\"80\" class=\"textform\">Maximální zrno&nbsp;</td>\
<td><select class=\"forminput2\" name=\"p[max_zrno]\">\
<option value=\"16\">16</option>\
<option value=\"8\">8</option>\
<option value=\"22\">22</option>\
</select> mm\
</td>\
</tr>\
<tr>\
<td class=\"textform\" colspan=\"2\" style=\"padding-bottom:5px;padding-top:5px;\">Poznámka</td>\
</tr>\
<tr>\
<td class=\"textform\" colspan=\"2\" style=\"padding-bottom:5px;\">\
<textarea name=\"p[poznamka]\" cols=\"15\" rows=\"3\" style=\"width:80%\"></textarea>\
</td>\
</tr>\
</table>\
";

initForm1("- Všechno -");
TypOnChange(document.wizardfrm['p[trida]'], "- Všechno -");


break;
case 2. atd..




<input type="submit" class="dalsin" value="">

</form>


přes ten ten JS vybírám tu hodnotu select, ale ta mi nejde uložit..
Radek Z
Profil
jde o to, že z té části formu v JS mi nejdou přenést proměnné na další stránu
Leo
Profil
Nijak tam nevidim ani slovo o session, v kodu, Leo
Radek Z
Profil
ono mě to totiž nepřenese už ani na další stránku přes:

<form name="neco" method="post" action="neco.php?hodnota=<? echo $hodnota;?>">

mi to nevypíš už ani tu hodnotu :-(
Leo
Profil
No a co mate v $hodnota, jak to ctete na dalsi strance atd. To je rec jak rozpravka, Leo
Radek Z
Profil
v hodnotě mám řiřazenou tu hodnotu ze selectu:

hodnota = trida_b.options[trida_b.selectedIndex].value;

hodnota2 = konz.options[konz.selectedIndex].value;
document.getElementById('inneradvanced').innerHTML += "<input type=\"text\" name=\"hodnota\" value=\""+hodnota+"\">";


nejde o to co tam je, ale že to nejde :-(
Leo
Profil
No ale $hodnota v kodu

<form name="neco" method="post" action="neco.php?hodnota=<? echo $hodnota;?>">

je promenna PHP, ne JS...

Leo
Radek Z
Profil
no a právě na to se ptám..
že právě tu proměnnou z JS potřebuji do pPHP, pže je to rozevírací formulář dle možností a potřebuji to uložit dále do session nebo db..
a myslel jsem, že to přes odeslání formu jde?
Leo
Profil
Musite JavaScriptem pred odeslanim formulare / idealne jako reakci na udalost submit zmenit jeho atribut action, tot vse. Leo
Radek Z
Profil
action? ted nechápu?
Leo
Profil
Pokud chcete mit jinou hodnotu action - vas pripad - musite ji proste zmenit, nebo ne? :-) Leo
Radek Z
Profil
jo to je jasný :-) ale jak to zapsat?

<form name="neco" method="post" action="neco.php?hodnota=<script type="text/javascript">document.write(hodnota)</script>">


takhle mi to nejde
Leo
Profil
Protoze JS neni PHP a funguje uplne jinak...

HTML:

<form onsubmit="akce(this)"

JS:

var hodnota = 10;

function akce(formular) {
formular.action = "neco.php?hodnota="+hodnota;
}

Napriklad, moznosti je rada.

Leo
Radek Z
Profil
aha :) ok, zkusím to, díky moc za radu i čas
Radek Z
Profil
Jo tak to funguje!
A já opravdu moc děkuji, pže jsem hledal řešení týden a až tohle mě nakoplo!
Jsem spíše phpkář a tohle je mimo můj obor.
Ještě jednou díky.
Radek Z
Profil
Ještě bych se chtěl zepta, nedá se tento vzorek upravit, aby to šlo i v IE, mě to funguje jen v FF a Opeře.
Leo
Profil
"mě to funguje jen v FF a Opeře"

Musi fungovat vsude. Jaky tam mate presne kod? Leo
Radek Z
Profil
No mě je jasný, že jsem někdo něco upsal :-(


 <script type="text/javascript">

function akce(formular) {
formular.action = "index.php?beton=form&step=2&hodnota="+hodnota+"&hodnota2="+konz.optio ns[konz.selectedIndex].value+"&hodnota3="+maxi.options[maxi.selectedIn dex].value;
}
</script>
<form name="wizardfrm" method="post" onsubmit="akce(this)">

v této podobě mi to běží jen v Opeře a FF
Radek Z
Profil
Je možný, že mám někde špatně nějakej název proměnný, ale je zvláštní, že mi to ve FF i Opeře jde, ale v IE ne :-(
peta
Profil *
Mozna, kdybys to treba zjednodusil...

<script type="text/javascript">

function ctiSelect(x)
{
return (window[x]?window[x].options[window[x].selectedIndex].value:null);
}

function akce(formular) {
formular.action = "index.php?beton=form&step=2&hodnota="+hodnota+"&hodnota2="+
ctiSelect('konz')+"&hodnota3="+ctiSelect('maxi');
// a ted by mozna bylo dobre napsat i
return true;
}

</script>

<form name="wizardfrm" method="post" onsubmit="akce(this)">

nejlepe
x='index...'
alert(a)
form.action = x
peta
Profil *
Si touhle konstrukci ale nejsem jist, pouzivam getElemenById...
return (window[x]?window[x].options[window[x].selectedIndex].value:null);

x = window[x];
return (Boolean(x)?x.options[x.selectedIndex].value:null);
mozna to bude treba napsat jako
x = document[x];
nebo
x = dozument.wizardfrm[x];


x = document.getElementById(x);
return (Boolean(x)?x.options[x.selectedIndex].value:null);
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.

0