PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine PHP & MySQL Dünaamiline rippmenüü ainult php'ga

Kokku on 55 postitust, jaotatud 4 leheküljele: 1-2-3-4. Praegu näidatakse postitused 31-45.

Autor Abi Postitus Abi

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Tänud jällegi.

Üks asi jäi veel silma. Kui klikata Lisa nupule ( näiteks http://beta.soida.ee/index.php?page=otsisoitu_lisa ) ,avatakse uus leht (õigemini tab) kus siis öeldakse kas pakkumine lisatud või on mingi viga.
Kuidas panna asi samal lehel avama.

Lõplik kood on siin: http://beta.soida.ee/pakusoitu.phps

___________________________________________________
Kui sul pole midagi öelda, ole vait.

02.10.2005 15:01:49 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

Seal on:

PHP kood:

$form = new HTML_QuickForm('paku',
 
'POST'
$_SERVER['SCRIPT_NAME'].'?page=pakusoitu_db'
'class="inputtext" style="normal"'
);



Kuid nagu API dokust näha, on neljandaks parameetriks target, classid/stiilid tuleb määrata viienda argumendiga:

PHP kood:

$form = new HTML_QuickForm('paku'
'POST',
$_SERVER['SCRIPT_NAME'].'?page=pakusoitu_db'
'_self'
'class=inputtext'
);



02.10.2005 15:38:38 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Korras,

sealt API documendist ei leidnud, kuidas saaks textareasse väärtuse sisestada. Textboxidel on see lihtne value=$muutuja abil teha mis textareal puudub.
<textarea>lause</textarea> oskan ka teha aga OOP puhul kui on

PHP kood:


$form->addElement('textarea''markused''Märkused''cols=24 rows=4 maxlength=250 class=inputtext''wrap=soft');


siis lugedes dokumentatsiooni pole siin sellest sõnagi, ainult
Koodijupp:

HTML_QuickForm_textarea HTML_QuickForm_textarea( [mixed $elementName = null], [mixed $elementLabel = null], [mixed $attributes = null])



EDIT: Midagi siiski on mainitud:
Koodijupp:

http://pear.php.net/package/HTML_QuickForm/docs/2.7/apidoc/HTML_QuickForm-2.7/HTML_QuickForm_element.html#methodsetValue


aga void setValue( $value) ei anna midagi tulemuseks

EDIT2:

Leidsin lõpuks ühe näite ja asi töötab nii:
PHP kood:


$form->setDefaults(
   array(
'markused'   => 'test',));



Seda postitust on muudetud 2 korda (viimati muudeti 2005-10-02 16:42:09 mairo22 poolt)

___________________________________________________
Kui sul pole midagi öelda, ole vait.

02.10.2005 16:31:23 Vajutades siia näed kasutaja mairo22 profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Probleem järgmine veel.
Sõidupakkumise muutmisel kuvatakse juba sisestatud väärtused vormis.
Mis valemiga saaks panna määrata automaatselt select menüüdesse baasist tuleva riigi ja linna väärtuse.

Näiteks siia:

PHP kood:


$sel =& $form->addElement('hierselect','lahtekoht''<b>Lähtekoht</b>');
$options array($riigid$linnad);
$sel->setOptions($options);



Idee oleks kas setSelected või setValue abiga ?

___________________________________________________
Kui sul pole midagi öelda, ole vait.

02.10.2005 18:04:04 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

Vaikeväärtused tuleks määrata ikka setDefaults funktsiooniga. Andmebaasi peaks minema riigi ja linna id ning siis:

PHP kood:

$form->setDefaults (
    array(
        
'lahtekoht'   => array(01),
        )
    );



02.10.2005 18:39:09 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Kas seda kuidagi ilma linnade ja riikide id'ta ei saaks lahendada kuna kogu süsteem on praegu ainult riigi/linna nimede peal üles ehitatud?

Varem olin asja lahendanud nii:
PHP kood:


              <?php
                
echo "
                <form action=\"$PHP_SELF\" method=\"post\">
                <select name=\"lahtekoht\" id=\"lahtekoht\">
                <option value=$lahtekoht>$lahtekoht</option>"
;
                echo 
$eesti_asulad;
                echo 
"
                <form action=\"$PHP_SELF\" method=\"post\">
                <select name=\"lahtekoht_riik\" id=\"lahtekoht_riik\">"
;
                echo 
$reisriik?>


mis pole just parim variant aga ajas asja ära.

___________________________________________________
Kui sul pole midagi öelda, ole vait.

02.10.2005 19:27:24 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

Kui baasi lähevad kohanimed tekstina väljakirjutatult siis tuleks defaulti määramisel kõigepealt $riigid massiivist vastava riigi id leida, ja seejärel vastavate linnade hulgast valitud linna id.

Masiivi elemendi võtme (ehk siis riigi/linna id) leiab funktsioon array_search()

02.10.2005 19:50:12 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Leidsin sellise lahenduse:

PHP kood:


$key array_search($lahtekoht_riik$riigid);
$key array_search($lahtekoht$linnad);


Kui teen echo $lahtekoht, $lahtekoht_riik; kuvatakse kenasti nimed a la Haapsalu Tallinn.
Millegipärast ei väljastatakse mulle väärtus 0 kui teha echo $key aga linna ega riigi nime automaatselt paika ei panda select menüüs;

Praegu näeb select menüü välja selline:
PHP kood:


$sel =& $form->addElement('hierselect','lahtekoht''<b>Lähtekoht</b>');
$options array($riigid$linnad);
$sel->setOptions($options);
$form->addRule('lahtekoht''Lähtekoht on nõutav!''required');
$key array_search($lahtekoht$linnad);
$key array_search($lahtekoht_riik$riigid);
$form->setDefaults (array('lahtekoht' => array(01),));


Ise arvan, et probleem on selles viimases reas, sest $lahtekoht muutujaga saadavaid nimesid tuleks võrrelda massiivi omaga aga ei oska...

___________________________________________________
Kui sul pole midagi öelda, ole vait.

03.10.2005 18:50:34 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

Ehk sedasi?
PHP kood:


$sel =& $form->addElement('hierselect','lahtekoht''<b>Lähtekoht</b>'); 
$options array($riigid$linnad); 
$sel->setOptions($options); 
$form->addRule('lahtekoht''Lähtekoht on nõutav!''required'); 
$key_city array_search($lahtekoht$linnad); 
$key_country array_search($lahtekoht_riik$riigid); 
$form->setDefaults (array('lahtekoht' => array($key_country$key_city),));



03.10.2005 20:35:12 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Riikide automaatne valimine toimib aga linnade omaga on jama. Kui teen:

PHP kood:


echo $key_country;


näidatakse mulle kenasti mitmes riik võetakse arrayst.
Aga
PHP kood:


echo $key_city;


puhul ei näidata midagi.
Äki asi selles, et linnad on nö kahedimensionaalses arrays:
PHP kood:


$linnad array(
     array(
'Abja''Aste''Audru''Avinurme'),
     array(
'Sloveenia'),
     array(
'Sveits'),
     array(
'Praha''Ostrava''Svitavy''Liberec''Hradec''Tabor''Plzen'),
     array(
'Taani'),
     array(
'Ungari'),
     array(
'Valgevene'),
     array(
'Moskva'));


Mõistus otsas...

(Väga ootamatult tekkis uue kujundusega foorm, just postituse lisamise ajal ja eriti segadusse ajavad need sisesta allajoonitud tekst, ...bold tekst, tsiteeritud tekst jne...)
(EDIT2: 5 minutit hiljem on uus kujundus läinud ja vana foorum tagasi - mis toimub? :P )

___________________________________________________
Kui sul pole midagi öelda, ole vait.

03.10.2005 23:07:18 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

Õigust räägid, niiviisi peaks töötama:

PHP kood:


$key_country array_search($lahtekoht_riik$riigid);
$key_city array_search($lahtekoht$linnad[$key_country]);



03.10.2005 23:21:58 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Veel üks probleem tuli välja:
http://beta.soida.ee/index.php?page=otsisoitu
Lähte- ja sihtkohad valikumenüüdesse linna ja riiginimede juurde tahaks lisada menüü valiku "Kõik lähtekohad" olenemata  valitud riigi nimest.
PHP kood:


$add_city array('Koik');
$merge_city array_merge($linnad$add_city);
$add_country array('Koik');
$merge_country array_merge($riigid$add_country);


abil kui teha print_r($merge_city); näidatakse kenasti viimasena valikut "Koik"
Koodijupp:

array ( [0] => array ( [0] => Abja [1] => Abja-Paluoja [2] => Alatskivi [3] => Antsla [4] => Are [5] => Aseri [6] => Aste [7] => ... [23] => array ( [0] => Valgevene ) [24] => array ( [0] => Moskva ) [25] => Koik )



Select menüü proovisin sedasi teha:
PHP kood:


$sel =& $form->addElement('hierselect','lahtekoht''<b>Lähtekoht</b>');
$options array($riigid$linnad);
$sel->setOptions($options);
$form->addRule('lahtekoht''Lähtekoht on nõutav!''required');
$key_country array_search($lahtekoht_riik$riigid);
$key_city array_search($lahtekoht$linnad[$key_country]);
$form->setDefaults(array('lahtekoht' => array($key_country$key_city),));


Riiginimede viimaseks ilmub menüü "Koik" aga linnanimede juurde ei õnnestu seda lisada.
Tahaks nii riigi kui linnanimede defaultiks ka "Koik" määrata.

___________________________________________________
Kui sul pole midagi öelda, ole vait.

05.10.2005 22:51:59 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

See "kõik linnad" valik tuleb linnade massiivi iga riigi juurde lisada.. for tsükliga linnad läbi käia ja lisamine teha.

05.10.2005 23:23:21 Vajutades siia näed kasutaja laurik profiili

mairo22

Postitusi: 220
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
RE: Dünaamiline rippmenüü ainult php'ga

Proovisin asja ühtepidi ja teistpidi aga midagi välja ikka ei kukkunud.

PHP kood:


$add_city array('Koik');
$merge_city array_merge($linnad$add_city);
$count count($linnad);
for (
$i 0$i $count$i++) {
   echo 
$linnad[$i] . "\n";
}


Sellega kuvatakse mulle ainult nimed: array array array jne...
Ühesõnaga raskusi kahedimensionaalsete arraydega....

___________________________________________________
Kui sul pole midagi öelda, ole vait.

10.10.2005 22:39:53 Vajutades siia näed kasutaja mairo22 profiili

laurik
_/<

Postitusi: 847
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Dünaamiline rippmenüü ainult php'ga

PHP kood:


$riike count($riigid);
for(
$i=0;$i<$riike;$i++)
{
    
$linnad[$i][] = 'Kõik'// lisame iga riigi linnade lõppu uue valiku
}



11.10.2005 10:06:44 Vajutades siia näed kasutaja laurik profiili

Kokku on 55 postitust, jaotatud 4 leheküljele: 1-2-3-4. Praegu näidatakse postitused 31-45.

Kokku: 25955 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on neljapäev, 28. mai 2020. Kell on 05:52.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2020 PHP Center. Kõik õigused reserveeritud.