Autor | Zpráva | ||
---|---|---|---|
BedyR Profil |
#1 · Zasláno: 26. 3. 2012, 23:13:26 · Upravil/a: Moderátor (editace znemožněna) 27. 3. 2012, 00:59:34
Moderátor Str4wberry: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ). Nemohl by jste někdo poradit jak se v javascriptu řeší substituce proměných.
Jako příklad využití uvávím toto : <script> function kontrola(p){ if (p > 10.9) {p = 10.9;} if (p < 0) {p = 0;} po = Math.round(p*10)/10; return po; } function test(){ document.forms.polozky.Edit001.value = kontrola(document.forms.polozky.Edit001.value); . . . document.forms.polozky.Edit0100.value = p100; document.forms.polozky.suma.value = p1+p2+p3 . . .+p98+p99+p100; } </script> <input name="Edit001" type="text" value="10.3" tabindex=1 onblur="test();" /> v PHP bych řešil tento problém, abych nemusel vypisovat všech sto řádků, cyklem se substitucí proměných: $cyklu = 100 ; $po = $p = $souc = 0; echo '<form name="polozky" method="post" action="./index.php" target="_self">'; for ($x=1; $x<($cyklu+1);$x++){ $y = str_pad($x, 3, "0", STR_PAD_LEFT); ; $p = ${"_POST['Edit".$y."']"}; if ($p > 10.9) {$p = 10.9;} if ($p < 0) {$p = 0;} $po = Math.round($p*10)/10; $souc += $po; echo '<input name="Edit'.$y.'" type="text" value="'.$po.'" tabindex='.$x.' />'; } echo '<input name="suma" type="text" value="'.$souc.'" tabindex=0 readonly="readonly" />'; echo "</form>"; samozdřejmně zde pro jednoduchost neřeším CSS style, jde mi hlavně o to zda je možno problém obdobně řešit v javascriptu protože v php bych mohl operaci provést až po odeslání submit tlačítkem. Díky. |
||
Str4wberry Profil |
#2 · Zasláno: 27. 3. 2012, 01:12:10
Ehm, co je cílem udělat?
Aha, ten postup v PHP je takový, jak to říct, nestandardní. Obvykle se takové podobné položky formuláře odesílají jako pole a nějaké skládání názvů proměnných není potřeba. V JavaScriptu si můžeš projít cyklem kolekci document.forms.polozky , tedy také nic skládat nepotřebuješ.
|
||
BedyR Profil |
#3 · Zasláno: 27. 3. 2012, 09:10:36
Str4wberry:
Předem se musím omluvit, že tam mám pár nedostatků : v Javascriptu : function test(){ p = new array(); p[0] = kontrola(document.forms.polozky.Edit001.value); document.forms.polozky.Edit001.value = p[0]; . . . p[99] = kontrola(document.forms.polozky.Edit100.value); document.forms.polozky.Edit0100.value = p[99]; for (x=0;x<p.length;x++){ document.forms.polozky.suma.value += p[x]; } } $po = round($p,1); Takže se zeptám jak bych zapsal v javascriptu toto z PHP : $a = 5; $b = "a"; $c = ${$b}; echo $c; |
||
Str4wberry Profil |
#4 · Zasláno: 27. 3. 2012, 10:22:04
Třeba:
var a = 5; var b = "a"; var c = window[b]; document.write(c); eval("var c = " + b); |
||
BedyR Profil |
#5 · Zasláno: 27. 3. 2012, 12:58:33
Str4wberry:
Díky moc. P.S. Název té proměné se generuje na základě dvou různých proměných načítaných v cyklu. Takže nemají posloupnost. |
||
Časová prodleva: 12 let
|
0