Diskuze: Vraceni hodnoty souctu v php scriptu zpet do formulare

PHP PHP Vraceni hodnoty souctu v php scriptu zpet do formulare American English version English version

Avatar
Frantisek Rychnovsky:

Ahoj, potreboval bych pomoc s timto: mam html stranku s 3 poli input a rad bych poslal obsah bunek 1 a 2 do php scriptu soucet tak, aby mi vysledek vratil zpet do te puvodni stranky, a to do pole 3, namisto toho aby mi jen na prazdne strance oznamil soucet. Je to proveditelne?

<form method="post" action="soucet.php">
  Cislo 1: <input type="text" name="cislo1"><br/>
  Cislo 2: <input type="text" name="cislo2"><br/><br/>
  <input type="submit"><br/><br/>
  Soucet: <input type="text" name="soucet"><br/>
</form>

php:

<?php

$soucet = $_POST['cislo1'] + $_POST['cislo2'];
            echo("Součet: $soucet");

        ?>
 
Odpovědět 19. března 22:10
Avatar
Michal Martinec:

PHP sa iba ucim aktulane, ale myslim si, ze do pole 3 by ti to nehodilo, nakolko pole aspon v tej prvej casti zaciatocnickej sa pouziva na vstup od uzivatela. Kedze vysledok nie je vstup od uzivatela, nebude ti ho moct zobrazit v 3 bunke.

Nahoru Odpovědět 19. března 22:46
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
Avatar
tom.ondrej
Člen
Avatar
tom.ondrej:

Na rychlo splácané řešení... Určitě tu někdo přijde i s něčím lepším. Jednodušší by bylo, kdyby se ti ten součet provedl na té samé stránce a ne v dalším souboru, tam nastává problém s tím že musíš ten součet nějak předat zpátky...

Nuže tady se ti to pošle do soucet.php, kde se to sečte a uloží do tzv. superglobální proměnné, do které mají přístup všechny soubory. Pak se to pomocí funkce header('location) přesměruje zpět. Jakmile se vypíše/nevypíše hodnota do formuláře, session se zničí pomocí session_destroy, takže při příštím refreshi (f5) už bude smazaný.

<?php
session_start();
?>

<form method="post" action="soucet.php">
  Cislo 1: <input type="text" name="cislo1"><br/>
  Cislo 2: <input type="text" name="cislo2"><br/><br/>
  <input type="submit"><br/><br/>
  Soucet: <input type="text" name="soucet" <?php if(isset($_SESSION['soucet'])){echo "value='{$_SESSION['soucet']}'";}else{echo "";} ?><br/>
</form>

<?php
session_destroy();
 ?>
<?php
session_start();
$soucet = $_POST['cislo1'] + $_POST['cislo2'];
$_SESSION['soucet'] = $soucet;
echo $soucet;
header('location: form.php');
?>
Editováno 19. března 22:53
Nahoru Odpovědět 19. března 22:50
Talk is cheap. Show me the code --- Linus Torvalds
Avatar
Michal Martinec:

No ok tak sa to da :D Len je to na mna zatial vela :D

Nahoru Odpovědět 19. března 22:53
Neporovnavaj sa s ostatnymi. Porovnavaj sa sam so sebou.
Avatar
Jiří Fencl
Člen
Avatar
Jiří Fencl:

Ahoj, musis si tu formuli na soucet dat do souboru s formularem a zrusit mu parametr action="soucet­.php". Uplne na zacatku udelas test hodnot v $_POST, kdyz nebudou hodnoty cislo, tak zobrazis formular a kdyz bude, tak spocitas soucet a vytisknes misto formulare.

 
Nahoru Odpovědět 19. března 22:54
Avatar
ConflictBoy
Člen
Avatar
ConflictBoy:

Můžeš použít něco takovýho :)

<?php
$soucet = '';
if (!empty($_POST['secti'])) {
        $soucet = $_POST['cislo1'] + $_POST['cislo2'];
}
?>
<form method="post" action="<?=$_SERVER['QUERY_STRING'];?>">
  Cislo 1: <input type="text" name="cislo1"><br/>
  Cislo 2: <input type="text" name="cislo2"><br/><br/>
  <input name="secti" type="submit"><br/><br/>
  Soucet: <input type="text" name="soucet" value="<?=$soucet;?>"><br/>
</form>
Nahoru Odpovědět 19. března 23:04
I'm programmer, I have no life :)
Avatar
Frantisek Rychnovsky:

V php jsem uplny zacatecnik, proto pro vas treba tak jednoduchy dotaz, ale... :-)
Chtel jsem mit ten formular primo na html strance, pokud bych ho prendal cely do php, tak nevim, jak bych ho pak ostyloval a umistil do stranky (na me moc slozite, zatim), proto me zajimalo, jak ten vystup dostat zpet do formulare v html...

To JF: Nepochopil jsem ted,co mam kde upravit, muzes to poslat v kodu ?

 
Nahoru Odpovědět 19. března 23:05
Avatar
Odpovídá na ConflictBoy
Frantisek Rychnovsky:

myslis tim cely ten kod v php souboru, nebo ta cast s formularem do html?

 
Nahoru Odpovědět 19. března 23:09
Avatar
Odpovídá na ConflictBoy
Frantisek Rychnovsky:

Uz jsem to prozkousel - funguje :-) ale tak, ze to pocita na nove strance a opusti to puvodni formular (nevraci to vysledek zpatky)...

 
Nahoru Odpovědět 19. března 23:17
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Frantisek Rychnovsky
ConflictBoy:

Pokud ten můj kód hodíš celý do jednoho souboru, zůstane to na formuláři :)

Nahoru Odpovědět 19. března 23:40
I'm programmer, I have no life :)
Avatar
Odpovídá na ConflictBoy
Frantisek Rychnovsky:

Ahoj, asi nerozumim, at delam co delam, opousti mi to puvodni formular a vytvori to v podstate novy ze souboru php, viz priloha form.jpg

 
Nahoru Odpovědět 20. března 8:13
Avatar
Odpovídá na Jiří Fencl
Frantisek Rychnovsky:

Ahoj, zkousim, googlim, ale stejne nerozumim, jak bych mel tu tvoji variantu zapsat, mohl bys mi ten muj vzorek uplne nahore upravit abych to pochopil?

 
Nahoru Odpovědět 20. března 8:37
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na Frantisek Rychnovsky
ConflictBoy:

No jednak budeš mít asi špatně includované šablony, proto se ti formulář potom zobrazí bez grafického rozhraní. Takže u takového kódu

<link rel="stylesheet" type="text/css" href="sablona.css>

přidej na začátek cesty k CSS lomítko, tedy:

<link rel="stylesheet" type="text/css" href="/sablona.css>

Jinak, udělej mě ty screeny i s URL odkazem. Řádek kódu

<form method="post" action="<?=$_SERVER['QUERY_STRING'];?>">

by měl zajistit, že zůstaneš na stejné stránce

Nahoru Odpovědět 20. března 18:08
I'm programmer, I have no life :)
Avatar
Odpovídá na ConflictBoy
Frantisek Rychnovsky:

Ahoj, diky, funguje, jen to je tak, ze takto je ten formular soucasti php stranky. Muj zamer byl mit formular na hlavni html strance (index.html); tam ho uzivatel vyplni, data se odeslou do php scriptu a jeho vysledek se vrati zpet do toho formulare na strance index.html.
Uz mi to castecne jde, jen jsem to musel napsat v javascripu. Myslel jsem, ze to pres php bude snadne, ale asi neni... :-) To ostylovani jsem jeste ani neresil, jde mi zatim jen o princip, FR

 
Nahoru Odpovědět 21. března 10:20
Avatar
Odpovídá na Frantisek Rychnovsky
Michal Štěpánek:

Jestli je stránka s koncovkou *.html, nebo *.php je konečnému uživateli šumák, protože to ve většině případů stejně ani nevidí. Spousta běžných uživatelů ani neví, co která koncovka znamená a jaký je mezi tím rozdíl, protože to jednoduše k životu vědět nepotřebují. Pro ně je důležité, co a jak se zobrazí na stránce a ne jakou má stránka koncovku...
V podstatě nevidím důvod, proč bys měl do PHPčka ještě montovat statické html stránky, když to můžeš mít pohodlně celé v PHP...

Editováno 21. března 11:07
Nahoru Odpovědět 21. března 11:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
Frantisek Rychnovsky:

Aha, to me vlastne vubec nenapadlo.... Jak to pak funguje kdyz uzivatel zada nazev stranky do prohlizece, musi tam byt index.html, nebo nemusi a automaticky se nacte treba index.php ?

 
Nahoru Odpovědět 21. března 12:14
Avatar
Odpovídá na Frantisek Rychnovsky
Michal Štěpánek:

Když lezeš na seznam, taky nepíšeš seznam.cz/index­.html či co to tam je, ale píšeš jen seznam.cz... Ten "index" nebo "default" je jen název výchozí stránky na serveru... Dneska na těch stránkách v podstatě ty koncovky souborů ve většině případů vidět nejsou, je tam jen název stránky bez koncovky...

Nahoru Odpovědět 21. března 12:26
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Frantisek Rychnovsky:

Jasne, s tim uz si nejak poradim, diky vsem, FR.

 
Nahoru Odpovědět 21. března 16:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.