Autor | Zpráva | ||
---|---|---|---|
pepan Profil |
#1 · Zasláno: 15. 11. 2008, 22:02:31
Chtěl jsem se zeptat, zda-li se dá jedna funkce použít 2x
mám takovouto funkci : <?php // Tato funkce vytvorí tri rozevírací nabídky pro mesíce, dny a roky. function vytvor_kalendar($tento_mesic = NULL, $dnes = NULL, $rok = NULL, $hodin = NULL, $minut = NULL) { // rozevírací nabídka dnů echo '<select name="den">'; for ($den = 1; $den <= 31; $den++) { if (strlen($den)==1) { $den="0" . $den; } echo "<option value=\"$den\""; if ($den == $dnes) { echo ' selected="selected"'; } echo ">$den</option>\n"; } echo '</select>'; echo '.'; //rozevírací nabídka měsíců // Vytvori pole mesícu. $mesice = array (1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'); echo '<select name="mesic">'; foreach ($mesice as $klic => $hodnota) { if (strlen($klic)==1) { $klic="0" . $klic; } echo "<option value=\"$klic\""; if ($klic == $tento_mesic) { echo ' selected="selected"'; } echo ">$hodnota</option>\n"; } echo '</select>'; echo ' '; //rozevírací nabídka roků echo '<select name="rok">'; if (!isset($rok)) { $rok = date('Y'); } $konec = $rok + 5; while ($rok <= $konec) { echo "<option value=\"$rok\">$rok</option>\n"; $rok++; } echo '</select>'; echo ' '; //rozevírací nabídka hodin echo '<select name="hodin">'; for ($hodiny = 0; $hodiny <= 23; $hodiny++) { if (strlen($hodiny)==1) { $hodiny="0" . $hodiny; } echo "<option value=\"$hodiny\""; if ($hodiny == $hodin) { echo ' selected="selected"'; } echo ">$hodiny</option>\n"; } echo '</select>'; echo ':'; //rozevírací nabídka minut echo '<select name="minut">'; for ($minuty = 0; $minuty <= 59; $minuty++) { if (strlen($minuty)==1) { $minuty="0" . $minuty; } echo "<option value=\"$minuty\""; if ($minuty == $minut) { echo ' selected="selected"'; } echo ">$minuty</option>\n"; } echo '</select>'; } // Konec funkce vytvor_kalendar(). $datum = getdate(); vytvor_kalendar($datum['mon'], $datum['mday'], $datum['year'], $datum['hours'], $datum['minutes']); // Tvorba kalendáre. ?> |
||
Měsíček Profil |
#2 · Zasláno: 15. 11. 2008, 22:14:28
Když ji trochu upravíš tak se samozřejmě 2x použít dá ;-)
|
||
pepan Profil |
#3 · Zasláno: 15. 11. 2008, 22:20:56
Měsíček
já právě vůbec nevím, jak bych ji měl upravit, PHP moc nehovím |
||
Tomasds Profil |
#4 · Zasláno: 15. 11. 2008, 22:33:06
pepan
Prostě ty druhé selecty musíš přejmenovat. Třeba <select name="den2"> atp. |
||
pepan Profil |
#5 · Zasláno: 15. 11. 2008, 22:34:55
Tomasds
já si to vůbec neuvědomil, děkuji |
||
pepan Profil |
#6 · Zasláno: 15. 11. 2008, 22:49:19
Tomasds
Zkoušel jsem to vše přejmenovat a pořád mi to vypisuje stejnou chybu - Fatal error: Cannot redeclare vytvor_kalendar() (previously declared in C:\Program Files\xampp\htdocs\xampp\web\zadavani_akci\includes\form_date_z.inc:5) in C:\Program Files\xampp\htdocs\xampp\web\zadavani_akci\includes\form_date_k.inc on line 88 |
||
Měsíček Profil |
#7 · Zasláno: 15. 11. 2008, 22:55:47
Tu funkci můžeš volat 2x ovšem ne ji dvakrát vytvářet ;-)
|
||
pepan Profil |
#8 · Zasláno: 15. 11. 2008, 22:57:35
Měsíček
aha, ale jak bych potom ten script upravil, aby mi vypsal ty formuláře 2x ? |
||
Měsíček Profil |
#9 · Zasláno: 15. 11. 2008, 23:00:52
Nakopl jsem Tě dostatečně? :)
function anything ($select = 0) { if ($select == 0) { echo 0; // Nebo něco udělej } if ($select != 0) { echo 1; // Udělej něco jiného (podobného) } } anything( 0 ); anything( 4 ); |
||
pepan Profil |
#10 · Zasláno: 15. 11. 2008, 23:10:05 · Upravil/a: pepan
Měsíček
Děkuji "nakopnutí" bylo dostatečné. Teď ale nastal problém, že všechny ty selecty (dnů, měsíců, hodin, minut a roků) mají stejný parametr name. Dá se to nějak ošetřit? |
||
pepan Profil |
#11 · Zasláno: 15. 11. 2008, 23:37:45
Ona právě celá ta funkce obsahuje ty selecty i s name.
|
||
Holyday Profil |
#12 · Zasláno: 15. 11. 2008, 23:55:52 · Upravil/a: Holyday
function anything ($select = 0) { if ($select == 0) { echo "<input type=\"text\" name=\"textovy1\">"; } if ($select != 0) { echo "<input type=\"text\" name=\"textovy2\">"; } } anything( 0 ); anything( 4 ); anebo kratší varianta function anything ($select = 0) { if ($select == 0) { $cislo = 1; } if ($select != 0) { $cislo = 2; } echo "<input type=\"text\" name=\"textovy".$cislo."\">"; } anything( 0 ); anything( 4 ); |
||
pepan Profil |
#13 · Zasláno: 16. 11. 2008, 00:02:57
Holyday
PHP mi moc nejde, pořád nevím, jak to změnit. Ty funkce volám takto <p>Název akce:</p> <p> <input id="povine" name="nazev" title="Název akce" /> </p> <p>Datum od:</p> <p><?php include("includes/form_date.inc"); vytvor_kalendar($datum['mon'], $datum['mday'], $datum['year'], $datum['hours'], $datum['minutes']); // Tvorba kalendáre. echo "</p> <p>Datum do:</p> <p>"; vytvor_kalendar($datum['mon'], $datum['mday'], $datum['year'], $datum['hours'], $datum['minutes']); // Tvorba kalendáre. ?></p> Kde form_date.inc je mnou nahoře uváděný kód bez sedmi posledních řádků. |
||
Holyday Profil |
#14 · Zasláno: 16. 11. 2008, 00:10:44
Vypiš spíš, jak teď vypadá tělo funkce, upravil jsem pouze Měsíčkovo principielní řešení...
|
||
pepan Profil |
#15 · Zasláno: 16. 11. 2008, 00:11:48
Holyday
function vytvor_kalendar($tento_mesic = NULL, $dnes = NULL, $rok = NULL, $hodin = NULL, $minut = NULL) { // rozevírací nabídka dnů echo '<select name="den">'; for ($den = 1; $den <= 31; $den++) { if (strlen($den)==1) { $den="0" . $den; } echo "<option value=\"$den\""; if ($den == $dnes) { echo ' selected="selected"'; } echo ">$den</option>\n"; } echo '</select>'; echo '.'; //rozevírací nabídka měsíců // Vytvori pole mesícu. $mesice = array (1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'); echo '<select name="mesic">'; foreach ($mesice as $klic => $hodnota) { if (strlen($klic)==1) { $klic="0" . $klic; } echo "<option value=\"$klic\""; if ($klic == $tento_mesic) { echo ' selected="selected"'; } echo ">$hodnota</option>\n"; } echo '</select>'; echo ' '; //rozevírací nabídka roků echo '<select name="rok">'; if (!isset($rok)) { $rok = date('Y'); } $konec = $rok + 5; while ($rok <= $konec) { echo "<option value=\"$rok\">$rok</option>\n"; $rok++; } echo '</select>'; echo ' '; //rozevírací nabídka hodin echo '<select name="hodin">'; for ($hodiny = 0; $hodiny <= 23; $hodiny++) { if (strlen($hodiny)==1) { $hodiny="0" . $hodiny; } echo "<option value=\"$hodiny\""; if ($hodiny == $hodin) { echo ' selected="selected"'; } echo ">$hodiny</option>\n"; } echo '</select>'; echo ':'; //rozevírací nabídka minut echo '<select name="minut">'; for ($minuty = 0; $minuty <= 59; $minuty++) { if (strlen($minuty)==1) { $minuty="0" . $minuty; } echo "<option value=\"$minuty\""; if ($minuty == $minut) { echo ' selected="selected"'; } echo ">$minuty</option>\n"; } echo '</select>'; } // Konec funkce vytvor_kalendar(). to je ta funkce |
||
king26 Profil |
#16 · Zasláno: 16. 11. 2008, 00:11:57
<?php // Tato funkce vytvorí tri rozevírací nabídky pro mesíce, dny a roky. function vytvor_kalendar($tento_mesic = NULL, $dnes = NULL, $rok = NULL, $hodin = NULL, $minut = NULL,$cislo) { // rozevírací nabídka dnů echo "<select name=\"den".$cislo."\">"; for ($den = 1; $den <= 31; $den++) { if (strlen($den)==1) { $den="0" . $den; } echo "<option value=\"$den\""; if ($den == $dnes) { echo ' selected="selected"'; } echo ">$den</option>\n"; } echo '</select>'; echo '.'; //rozevírací nabídka měsíců // Vytvori pole mesícu. $mesice = array (1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'); echo "<select name=\"mesic".$cislo."\">"; foreach ($mesice as $klic => $hodnota) { if (strlen($klic)==1) { $klic="0" . $klic; } echo "<option value=\"$klic\""; if ($klic == $tento_mesic) { echo ' selected="selected"'; } echo ">$hodnota</option>\n"; } echo '</select>'; echo ' '; //rozevírací nabídka roků echo "<select name=\"rok".$cislo."\">"; if (!isset($rok)) { $rok = date('Y'); } $konec = $rok + 5; while ($rok <= $konec) { echo "<option value=\"$rok\">$rok</option>\n"; $rok++; } echo '</select>'; echo ' '; //rozevírací nabídka hodin echo "<select name=\"hodin".$cislo."\">"; for ($hodiny = 0; $hodiny <= 23; $hodiny++) { if (strlen($hodiny)==1) { $hodiny="0" . $hodiny; } echo "<option value=\"$hodiny\""; if ($hodiny == $hodin) { echo ' selected="selected"'; } echo ">$hodiny</option>\n"; } echo '</select>'; echo ':'; //rozevírací nabídka minut echo "<select name=\"minut".$cislo."\">"; for ($minuty = 0; $minuty <= 59; $minuty++) { if (strlen($minuty)==1) { $minuty="0" . $minuty; } echo "<option value=\"$minuty\""; if ($minuty == $minut) { echo ' selected="selected"'; } echo ">$minuty</option>\n"; } echo '</select>'; } // Konec funkce vytvor_kalendar(). $datum = getdate(); vytvor_kalendar($datum['mon'], $datum['mday'], $datum['year'], $datum['hours'], $datum['minutes'],0); vytvor_kalendar($datum['mon'], $datum['mday'], $datum['year'], $datum['hours'], $datum['minutes'],1); // Tvorba kalendáre. ?> pro zacatek je to den0,mesic0,rok0,... pro konec je to den1,mesic1,rok1,... |
||
pepan Profil |
#17 · Zasláno: 16. 11. 2008, 00:16:58
king26
Super, funguje to přesně jak má. Všem moc děkuji za pomoc :) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0