Autor Zpráva
zacatecnik
Profil *
Dobrý den mám dotaz jak se dají na www stránkách vytvořit funkce jako např. v Excelu nebo tak? Jakože třeba do jednoho textového pole napíšu jedničku, do druhého pětku a vypočte mě to číslo 6

Moderátor Davex: Nepoužívej prosím tučné písmo v celém příspěvku.
Darkry
Profil
Doporučuji nastudovat něco o funkcích. V php několik základních matematických operací zastupují znaménka (+*-/), dalších spousty má svojí funkci (cos(), sin(), tan()) a zbytek si můžete definovat:
function funkce($parametr) {
   return .........;
}

Co se týče těch políček tak jednoduše vytvořit formulář a pak si načteš odeslané hodnoty:
$result = $_GET["policko1"] + $_GET["policko2"];

Pokud chceš výsledek ihned bez odesílání musíš použít JavaScript.
zacatecnik
Profil *
Zkoušel jsem ledacos ale pořád se mi neobjevoval výsledek. Mohl by mi někdo prosím říct celý kód? Mám na mysli kód, který by zahrnoval 2 textová pole, jejichž součet by mi vyšel po stisknutí tlačítka Odeslat?
panther
Profil
zacatecnik:
Zkoušel jsem ledacos ale pořád se mi neobjevoval výsledek. Mohl by mi někdo prosím říct celý kód?
co kdybychom to udělali obráceně a ukázal nám, cos vytvořil ty a nfungovalo? Nějak to opravíme.
SeparateSK
Profil
Skus toto :
<form>
<input name="p1"> + 
<input name="p2"> = 
<?php 
$sucet=$_GET[p1]+$_GET[p2]; //scitame p1 a p2 (p=policko) 
echo $sucet; //a vypiseme sucet tychto dvoch cisel
?><br>
<input type="submit" value="Vypocitaj">
</form>
zacatecnik
Profil *
panther:
co kdybychom to udělali obráceně a ukázal nám, cos vytvořil ty a nfungovalo? Nějak to opravíme.
Vytvořil jsem formulář, který mi tady napověděl SeparateSK, který se mi sice zobrazil, ale když jsem zadal čísla a zmáčknul jsem Vypocitaj, objevilo se mi: Stránka nenalezena. Nevím jestli to není tím, že jsem to dělal pomocí webgenerátoru websnadno.cz, a ne pomocí obyčejného html editoru.
SeparateSK
Profil
nechapem ako ti to mohlo vyhodit 404 error - stranka nenalezena (script odkazoval sam na seba)
skus
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get"> <!- tento formular 100% odkazuje sam na seba-->
<input name="p1"> + 
<input name="p2"> = 
<?php 
$sucet=$_GET[p1]+$_GET[p2]; //scitame p1 a p2 (p=policko) 
echo $sucet; //a vypiseme sucet tychto dvoch cisel
?><br>
<input type="submit" value="Vypocitaj">
</form>
zacatecnik
Profil *
Po stisknutí tlačítka se mi načetla adresa nejakastranka.websnadno/<?p1=&p2= (opět error 404)
Když jsem z adresy umazal < , načetla se mi hlavní stránka mých webových stránek (ale nikoli ta, na kterou jsem umístil formulář), ovšem ani tady jsem nenašel výpočet. Zkusím tenhle kód zadat v nějakém jiném editoru, třeba to bude fungovat.
SeparateSK
Profil
ja som to skusil a fungovalo to takto
nacital som stranku s formularom (index.php)
zadal som 2 cisla, klikol na Vypocitaj
Potom som sa ocitol na stranke index.php?p1=1&p2=2
Vypisalo to ze vysledok je 3 (1+2)

A v tvojom odkaze /<?p1=&p2= je vidno ,ze si nezadal hodnoty pre p1 a p2 (pretoze ?p1= a &p2= ) tak jasne ze vysledok bol "" (nic) skus napr
/?p1=1&p2=2
(1+2)
panther
Profil
zacatecnik:
Umí websnadno pracovat s PHP? Máš možnost tvořit tam a pracovat s formuláři? Tu služnu neznám, ale začni pátrat tam.
zacatecnik
Profil *
[img]file:///home/host/Plocha/Sn%C3%ADmek%20obrazovky-31.png[/img]
[img]file:///home/host/Plocha/Sn%C3%ADmek%20obrazovky-33.png[/img]
Zkoušel jsem to v online html editorech, v jednom sice stránka odkázala sama na sebe, ale výsledek nikde.
Když jsem to zkoušel v real-time html editoru, opět error.
Jsem holt ztracený případ :(
jenikkozak
Profil
zacatecnik:
Aby ti PHP skripty fungovaly, potřebuješ hosting, který PHP podporuje. Websnadno má uvedeno, že „nepodporujeme PHP“, což znamená, že se ty příkazy neprovedou a odešlou se prohlížeči stále v té formě, kterou při psaní kódu uvedeš. Musíš si najít hosting, který PHP podporuje, a nebo si tuhle kalkulačku můžeš vytvořit v Javascriptu (pokud nepotřebuješ, aby ti spočítaná data někam ukládala).
Joker
Profil
zacatecnik:
Mně se zdá, že Websnadno vůbec PHP nepodporuje.
Obrázky uložené na ploše nějakého počítače si tady neprohlédneme, je potřeba je kdyžtak nahrát někam na web.

Jinak i když stránka PHP neumí, šly by matematické funkce udělat Javascriptem.
Například zde je ukázka kódu pro sčítání.
zacatecnik
Profil *
Díky, konečně rada :)
zacatecnik
Profil *
A mám prosím ještě jeden dotaz. Když zadám do jednoho textového pole 6 a do druhého 9, jak můžu docílit toho, aby se mi sečetla všechna čísla od 6 do 9 (6+7+8+9)?
Joker
Profil
zacatecnik:
Když zadám do jednoho textového pole 6 a do druhého 9, jak můžu docílit toho, aby se mi sečetla všechna čísla od 6 do 9 (6+7+8+9)?
Samozřejmě.
Jedna možnost je použít sčítání a cyklus.
Druhá je použít vzorec pro součet posloupnosti: Součet všech přirozených čísel odněkud někam (od a do b) je součet toho nejmenšího a největšího (a + b) krát polovina toho, kolik těch čísel je ((b - a) / 2)

Druhá možnost mimochodem vyplývá z oné slavné historky, jak malý Gauss měl ve škole za úkol sečíst čísla od 1 do 100.
abc
Profil
Joker:
Pardon, že do toho zasauhuju, ale ten vzoreček mi nějak nefunguje
6+7+8+9=30
(6+9)*((9-6)/2)=22,5

Dospěl jsem k tomu, že počet čísel se počítá jinak:
((b-a+1)/2)
Potom už to vychází/funguje
Joker
Profil
abc:
Moje chyba, popis kolik těch čísel je je správný (prostě 6+7+8+9 jsou 4 čísla), akorát to není b-a, ale b-a+1.

Předchozí příspěvek byl mezitím upraven, takže: Ano, přesně tak.
zacatecnik
Profil *
Skvělá rada a šlo by to udělat také tak že bych všechna čísla od 6 do 9 umocnil na 2,5 a teprve potom sečetl mocniny?
(88+129+181+243=641)
abc
Profil
zacatecnik:
ano, cyklusem for() něco jako:
$a=6;
$b=9;
$vysledek = 0;
for ($i=$a;$i<=$b;$i++){
  $vysledek += pow($i,2.5);
}
echo $vysledek;

a dokonce to i funguje :-)
zacatecnik
Profil *
A javaskriptu by to nešlo? Já pracuji s formulářem, který mi poradil Joker a tohle se mi moc nehodí....
Alphard
Profil
zacatecnik:
Šlo, zkusil jste něco? Ekvivalentní metoda pro PHP funkci pow() je v js Math.pow(x,y). For cyklus tam taky funguje.
zacatecnik
Profil *
zkusil, ale pořád to píše syntax error, někdy syntax error on line 31, jindy syntax error on line 51...
abc
Profil
zacatecnik:
Místo požadavků na hotové řešení raději pošli svůj kód a chyby a my ti poradíme, co je špatně
zacatecnik
Profil *
Už to funguje, šlo o špatně napsanou závorku
Nejdřív jsem napsal
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
</head>
<body>
<?php
$a=6;
$b=9;
$vysledek = 0;
for ($i=$a;$i<=$b;$i++){
  $vysledek += pow($i,2.5);
}
echo $vysledek;
}
?>
</body>
</html> 
Ale potom jsem to upravil
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
</head>
<body>
<?php
$a=6;
$b=9;
$vysledek = 0;
for ($i=$a;$i<=$b;$i++){
  $vysledek += pow($i,2.5);
echo $vysledek;
}
?>
</body>
</html> 
Vyšlo mi 88.181630740194217.82344498236398.84278096612641.84278096612
abc
Profil
zacatecnik:
To jsi samozřejmě upravil špatně. To echo $vyledek; nemá být v cyklu for, ale až po něm. Když je v cyklu for, tak v každém cyklu vypíše výsledek... Správný výsledek je 641.84278096612

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: