| Autor | Zpráva | ||
|---|---|---|---|
| Andres Profil * |
#1 · Zasláno: 30. 7. 2011, 19:06:07
Zdravím,
jsem úplný php začátečník. Mohl by mi prosím někdo poradit, s tím jak v php nadefinovat co bude dělat jednotlivá vybraná hodnota v select? můj formulář vypadá asi takhle <select name="statimage" size="1"> <option value="prazdne"> <option value="gol">gol <option value="zluta">zluta <option value="cervena">cervena <option value="stridani">stridani </select> Chtěl bych, aby každá value pokud je zvolena zobrazila nějaký obrázek. Našel jsem neco jako:
{
case 'prazdne': echo "" ;
case 'gol': echo "<img src=\"1.gif\" />";
case 'zluta': echo "<img src=\"2.gif\" />";
case 'cervena': echo "<img src=\"3.gif\" />";
case 'stridani': echo "<img src=\"4.gif\" />";
} Jenže nevím, co mám dát před ten začátek... |
||
| Sir Tom Profil |
#2 · Zasláno: 30. 7. 2011, 19:42:55
Andres:
Také zdravím, a máš oba dva kódy na jedné stránce nebo ten druhý kód je na stránce, kam se odesílá formulář? Pokud máš oba kódy na jedné stránce, tak to nejde. PHP nedokáže měnit obsah (část) aktuálně zobrazené stránky (je to serverový jazyk). K tomu slouží JavaScript (jazyk klienta). Pokud máš formulář, který se pak odešle na stránku se druhým kódem, tak tento druhý kód uprav na: switch($_POST["statimage"]){ //zjistí jakou hodnotu má prvek se jménem statimage
case 'prazdne': echo "" ;
case 'gol': echo "<img src=\"1.gif\" />";
case 'zluta': echo "<img src=\"2.gif\" />";
case 'cervena': echo "<img src=\"3.gif\" />";
case 'stridani': echo "<img src=\"4.gif\" />";
}(V tagu <form> musíš mít atribut method="post") |
||
| Andres Profil * |
#3 · Zasláno: 31. 7. 2011, 11:34:24
díky,
select mám v adminu a obrázek se má zobrazovat na stránce... a je to v úplně jiných php souborech, takže nemusím nějak definovat co má to $_POST["statimage"] dělat? nebo to má zjistit hodnotu i z jiného php souboru? Protože mi to nefunguje... |
||
| Sir Tom Profil |
#4 · Zasláno: 31. 7. 2011, 15:43:57
Pokud je ten select a obrázek na jedné stránce (tzn. vidím je oba dva zároveň - nezáleží, že to jsou různé soubory), tak to udělat nelze. PHP neumí zjistit hodnotu v selectu. Na to je JS (google najde spoustu výsledků na "change image select javascript" - např.: www.rgagnon.com/jsdetails/js-0057.html se živou ukázkou pod 'Try it here'.).
Jediné PHP řešení je to, že by se formulář někam odesílal - při odeslání se totiž do $_POST["statimage"] uloží vybraná hodnota v elementu se jménem 'statimage'. |
||
| Andres Profil * |
#5 · Zasláno: 31. 7. 2011, 20:42:52
Nene, to jsi mě špatně pochopil, select mám v adminu a obrázek se má zobrazit na stránce, kterou vidí návštěvníci, tam by právě problém být neměl.
|
||
| Andres Profil * |
Kdyby se na to chtěl někdo podívat...
Tady je soubor, který to má zobrazit http://pastebin.com/zGcbz8tc Tady ten, ve kterém je ten select http://pastebin.com/7Z5YwpAn formulář začíná na řádku 65 a select na řádku 87 Moderátor Alphard: Obarvené verze http://pastebin.com/svgKj0CB, http://pastebin.com/XJi58nM1.
|
||
| Sir Tom Profil |
#7 · Zasláno: 31. 7. 2011, 22:28:48
Andres:
Na to, že píšeš, že jsi PHP začátečník, je ten kód poměrně složitý. Vypadá to, že se asi jedná o nějaký CMS (redakční) systém (možná bych dotaz směřoval přímo tam.) Myslel jsem, že onu hodnotu pro obrázek má vybírat sám uživatel a ne administrátor. Nedovedu si moc představit, jak by šlo udělat, aby se změnil obrázek na základě změny hodnoty v selectu u admina. Ano, jde to - řešil bych to tak, že bych udělal formulář. Až by admin zde vybral nějakou hodnotu v select, tak by klikl na tlačítko submit, stránka by se přesměrovala na stránku, kde se zpracuje onen formulář, právě vybranou hodnotu od select bych uložil do nějaké globální proměnné ($_SESSION[...] nebo $_COOKIE[...]) a pak tuto stránku bych přesměroval zpět na původní rozhraní pro adminy. Nakonec bych aktualizoval stránku, kde se zobrazuje obrázek, a podle hodnoty v globální proměnné by se na ní zobrazil správný obrázek. |
||
| Andres Profil * |
#8 · Zasláno: 1. 8. 2011, 05:44:26
Tak to je jeden plugin do wordpressu, já jsem se ho jenom snažil trochu doladit. Kontaktoval bych vývojáře, ale ten už se na tom nepracuje...Tam tlačítko submit právě je, po něm se uloží ty hodnoty. Pokud ses díval na ten formulář, tak je tam právě i text input a ten funguje normálně...
|
||
| Alphard Profil |
#9 · Zasláno: 1. 8. 2011, 08:09:40
Váš select je součástí prvního formuláře, zpracovává ho metoda
$lmStats->save($_POST['match_id'], $_POST['stats']); |
||
| Sir Tom Profil |
#10 · Zasláno: 1. 8. 2011, 18:28:47
Andres:
Ano, omlouvám se. Alphard se svojí poznámkou o databázi to napsal lépe. Moje řešení je použitelné pouze tehdy pokud admin a návštěvník je jedna a tatáž osoba na jednom počítači. Doplnil bych jenom, že hodnota v selectu se dá uložit také i do nějakého souboru... |
||
|
Časová prodleva: 14 let
|
|||
0