Zvetseni formulare – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zvetseni formulare – PHP – Fórum – Programujte.comZvetseni formulare – PHP – Fórum – Programujte.com

 

werixon0
Návštěvník
7. 5. 2011   #1
-
0
-

Cau, potreboval bych helpnout s timhle: mam udelat formular, ktery se muze zvetsit, kdyz uzivatel bude chtit. Ten muj pokus pracuje takto: v prvnim kroku ukaze jedno textove pole a tlacitko. Ve druhem kroku, kdyz kliknu tak mi zvesi pocet textovych poli na 3 a tlacitko. Ale pak muzu klikat jak chci a nezvetsi se - cemuz rozumim, ale nevim jak to obejit. Nakou promenou, kterou udrzi.... Klidne mi poradte i jiny postup ..... diky

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
if(empty ($_POST["p"])){
$promena = 1;
}
if(!empty ($_POST['p'])){
$promena = $promena + $_POST["p"];
}

for($i = 1; $i <= $promena; $i++){
?>
<form action="index.php" method="post">
Pokus <input type="text" name="pokus" >

</form>
<?php
}
?>
<form action="index.php" method="post">
<input type="submit" name="tlacitko" value="knoflik">
<input type="hidden" value="3" name="p">
</form>
</body>
</html>

Nahlásit jako SPAM
IP: 89.102.109.–
insider0
Věrný člen
7. 5. 2011   #2
-
0
-

1) na tohle je asi vhodnejsi javascript
2) kdyz uz to chces pres php, tak mas zbytecne obaleny kazdy input vlastnim formularem - asi nebude fungovat tak, jak chces
3) promennou $promena nemas nikde definovanou, nebo prenasenou, takze po kliku na tlacitko ma vzycky hodnotu 0 + hodnotu hidden pole z formulare, ktera je vzdycky 3 -> proto vzdycky 3 inputy a nikdy jinak.

Nahlásit jako SPAM
IP: 78.45.33.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
werixon0
Návštěvník
7. 5. 2011   #3
-
0
-

Ja s tebou souhlasim, ale nevim jak ji mam prenest. Zkousel jsem jeste to trochu poupravit, ale nefunguje to. Zkusmi to, prosim priblizit. Diky.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php

if (empty($_POST["p"])) { //pri prvnim pruchodu mi inicializuje $promena
$promena = 1;
}
for ($i = 1; $i <= $promena; $i++) {
?>
<form action="index.php" method="post">
Pokus <input type="text" name="pokus" >
<?php
}
?>
<input type="submit" name="tlacitko" value="knoflik">
<input type="hidden" value="<?php $promena = $promena + 3; ?>" name="p">
</form>
</body>
</html>

Nahlásit jako SPAM
IP: 89.102.109.–
insider0
Věrný člen
7. 5. 2011   #4
-
0
-

//pri prvnim pruchodu mi inicializuje $promena


v php je pruchod vzdy jen jeden, pokud to neni v cyklu :) Ale pri prepisu na "prvni zobrazeni stranky" to dava smysl :)
Na radku 14 zbytecne vypisujes <form> pro kazdy input.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="index.php" method="post"> <!-- form pred cylkus, takze se vypise jen jednou -->
<?php
$promena = 1; // zakladni hodnota
if (isset($_POST["p"])) {
$promena = max(intval($_POST["p"]),1); // trochu osetreni - vzdy jen cislo, minimalne 1
}
// ted je v promenne bud 1, nebo hodnota z formulare
for ($i = 1; $i <= $promena; $i++) {
?>
Pokus <input type="text" name="pokus" >
<?php
}
?>
<input type="submit" name="tlacitko" value="knoflik">
<input type="hidden" value="<?php echo ($promena+3); ?>" name="p"><!-- tady se pak ulozi aktualni hodnota+3, takze pri dalsim kliku pribudou 3 pole -->
</form>
</body>
</html>

Nahlásit jako SPAM
IP: 78.45.33.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
werixon0
Návštěvník
7. 5. 2011   #5
-
0
-

Diky, udelam par pokusu a uvidime. Jenom jeste jeden dotaz....na 21. radku je echo ($promena+3); , a to jako proc?? echo je pro retezec, ktery pak stejne prevadis na cislo. Nevim, proc to??

Nahlásit jako SPAM
IP: 89.102.109.–
nervak0
Věrný člen
Nahlásit jako SPAM
IP: 213.211.51.–
werixon0
Návštěvník
7. 5. 2011   #7
-
0
-

Diky, ale me nedoslo, ze value potrebuje retezec....pak je to jasny

Nahlásit jako SPAM
IP: 89.102.109.–
nervak0
Věrný člen
7. 5. 2011   #8
-
0
-

Evidentně pořád není.

Nahlásit jako SPAM
IP: 213.211.51.–
werixon0
Návštěvník
7. 5. 2011   #9
-
0
-

To nervak : Ted jsi me dostal :-D Vetsinou je to naopak. Co mi ted neni jasny?? echo vypisuje retezec a je bez navratu.... tag value pracuje s retezci, takze na 11. radku pretypuju a vratim vetsim cislo. Je to tak??

Nahlásit jako SPAM
IP: 89.102.109.–
insider0
Věrný člen
7. 5. 2011   #10
-
0
-

echo vypisuje promennou/retezec/cokoli na stranku. PHP "nema" datove typy promennych a pretypovava si vsechno za behu, takze at uz do echa vrazis cokoli, vypise se to na strance. Zavorky jsou pro prednostni vyrizeni scitaciho vyrazu, takze ve vysledku se vypise secteny vyraz promena+3 -> pri prvnim zobrazeni 4, druhe 7, 10,13 ...
A ano, na 11. radku si z rpomenne vezmu ciselnou hodnotu - to pro pripad, ze by se nekdo snazil podstrcit neco jineho. Pokud je ale promenna cisty retezec, jako napr "abcd", tak intval vrati 0, proto ta maximalni hodnota, kde kdyz to je 0, vrati to 1

Nahlásit jako SPAM
IP: 78.45.33.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
werixon0
Návštěvník
7. 5. 2011   #11
-
0
-

JJ, souhlas. Nechapal jsem, proc davas do tagu valule echo - ale ono value pracuje jedine s retezcem (""). Tak proto mi to bylo divny. Scitaci priorita je mi jasna. Echo jenom vytiskne do value hodnotu. Ja bych to tam daval jedine $promenou + 3, viz muj 2.kod,radek 21. Snad jsem to uz pochopil dobre, diky za snahu.

Nahlásit jako SPAM
IP: 90.181.184.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý