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 46-55.

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äitsa töötab aga kuidas see valik "Kõik" lisada array algusesse ehk esimeseks.
Leidsin reset($array) funktsiooni aga sellega ei töödanud asi.

Lisaks veel üks anomaalia:
PHP kood:


// reisijal luba suitsetada
$form->addElement('select''suits''Reisija võib suitsetada'$suits);
$form->setDefaults(array('suits' => $reisija_suitsetab,));
echo 
$reisija_suitsetab;


kuvatakse mulle viimase reaga kenasti "jah" või "ei" aga millegipärast ei valita seda rippmenüü default väärtuseks. Kõik nagu peaks õieti olema...

Seda postitust on muudetud 1 kord (2005-10-11 12:20:19 mairo22 poolt)

___________________________________________________
Kui sul pole midagi öelda, ole vait.

11.10.2005 12:02:31 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

Rippmenüü algusesse saab selle "kõik" nii:
PHP kood:

$riike count($riigid);
for(
$i=0;$i<$riike;$i++)
{
    
array_unshift($linnad[$i], 'Kõik');
}



Mida selle $reisija_suitsetab väärtuseks on? Vaikimisi asja määramiseks peaks selle väärtuseks olema number 0-2 (kui oli kolm valikut). Kui aga väärtus on tekstikujul siis tuleb kasutada array_search-i nagu riikide/linnade puhulgi.

11.10.2005 14:26:54 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

Tänud!

http://beta.soida.ee/index.php?page=otsisoitu

Kui rippmenüüst riikide lahte- ja sihtkohtade alt vaadata, siis valik "Kõik" on viimasena olemas. Kui valin lähte ja sihtkohaks "Kõik" ja otsin, siis järgmisel lehel ei kuvata millegipärast mulle muutujad "Koik" kuigi peaks.
Riikide nimed lähte ja sihtkohaks pannes on kõik korras, korras on ka linnanimede puhul asi.

Muutujad saan otsisoitu.php failist nii:

PHP kood:


//lähtekoht riik
if (!isset($_GET['lahtekoht_riik'])) { 
    
$lahtekoht_riik $GLOBALS['riigid'][$_POST['lahtekoht'][0]]; 
} else { 
    
$lahtekoht_riik $_GET['lahtekoht_riik']; 


//lähtekoht linn
if (!isset($_GET['lahtekoht'])) { 
    
$lahtekoht $GLOBALS['linnad'][$_POST['lahtekoht'][0]][$_POST['lahtekoht'][1]]; 
} else { 
    
$lahtekoht $_GET['lahtekoht']; 


//sihtkoht riik
if (!isset($_GET['sihtkoht_riik'])) { 
    
$sihtkoht_riik $GLOBALS['riigid'][$_POST['sihtkoht'][0]]; 
} else { 
    
$sihtkoht_riik $_GET['sihtkoht_riik']; 



Siin nagu ei saa viga olla?

___________________________________________________
Kui sul pole midagi öelda, ole vait.

12.10.2005 12:40:44 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 pakusoitu_db lehel on need "Kõik" valikud ikka menüüdesse lisatud?

12.10.2005 23:27:01 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

Praegu on asi nii üles ehitatud:

riigid.php failis liidan 2 arrayd:
PHP kood:


$add_country array('Koik');
$merge_country array_merge($riigid$add_country);



otsisoitu.php failis tekitan valikumenüüd, kus on viimaseks riigi valikuks "Kõik"
PHP kood:


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

// sihtkoht
$sel =& $form->addElement('hierselect','sihtkoht''Sihtkoht');
$options array($merge_country$linnad);
$sel->setOptions($options);



Päring läheb faili otsisoitu_db.php, kus võtan POST muutujad:
PHP kood:


require_once 'riigid.php';
...
//lähtekoht riik
if (!isset($_GET['lahtekoht_riik'])) { 
    
$lahtekoht_riik $GLOBALS['riigid'][$_POST['lahtekoht'][0]]; 
} else { 
    
$lahtekoht_riik $_GET['lahtekoht_riik']; 

...
//sihtkoht riik
if (!isset($_GET['sihtkoht_riik'])) { 
    
$sihtkoht_riik $GLOBALS['riigid'][$_POST['sihtkoht'][0]]; 
} else { 
    
$sihtkoht_riik $_GET['sihtkoht_riik']; 




Ei saa aru, kuhu see muutuja "Kõik" kaob, kuna ühes teises teemas tegin erinevate päringute ahela, kus läheb seda muutujat "Kõik" vaja

___________________________________________________
Kui sul pole midagi öelda, ole vait.

13.10.2005 18:24:35 Vajutades siia näed kasutaja mairo22 profiili

uugu21

Postitusi: 380
Tase: 6
Olek: Offline

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

kõigepealt tekitad (üsna ebavajaliku) massiivi 'merge_country' kasutad teda korra (failis otsisoitu.php) ning siis jätkad elegantselt massiiviga 'riigid' (otsisoitu_db.php).


13.10.2005 18:52:19 Vajutades siia näed kasutaja uugu21 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

Pole kahjuks arraydega niipalju kogemusi, et kõige lihtsamat teedpidi "Kõik" saaks lisada massiivi.

Aga tänud, riigid asemel pidi olema jah merge_country ja nüüd asi töötab

___________________________________________________
Kui sul pole midagi öelda, ole vait.

13.10.2005 19:01:46 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

Sain lõpuks kõik töötavaks ning hakkasin testima.

Tuli välja, et automaatselt lisatakse see "kõik" valik ka sõidulisamise juurde, näiteks siin: http://beta.soida.ee/index.php?page=otsisoitu_lisa

Kuna linnanimedel kasutan "kõik" lisamiseks sellist koodi:
PHP kood:


// lisame igale linnale lõppu "kõik"
$riike count($riigid);
for(
$i=0;$i<$riike;$i++)
{
    
array_unshift($linnad[$i], 'Koik'); // lisame iga riigi linnade lõppu uue valiku
}


siis proovisin teha uue massiivi $linnad2 mis on identne $linnad omaga aga lihtsalt ei lisata seda "kõik" valikut ülaloleva koodiga juurde. Tulemuseks oli, et "kõik" valikut küll ei kuvatud aga kui valin lähtekohaks Jena, siis tegelikult lisatakse massiivis ühevõrra väiksema väärtusega ehk Hannover kuna Hannover on enne Jenat nimekirjas.
Kuda sellest jamast lahti saada, et ei peaks hakkama tegema uut topeltarrayd linnanimedega.

___________________________________________________
Kui sul pole midagi öelda, ole vait.

13.10.2005 20:45:49 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

Mingi lahenduse vist leidsin asjale, tegin teise massiivi $linnad_2=array(array(....));

ja array_unshift($linnad[$i], ''); mis jätab lihtsalt tühja valiku "kõik" asemele.

___________________________________________________
Kui sul pole midagi öelda, ole vait.

13.10.2005 21:04:51 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

Nüüd seiklen uue asjaga. Nimelt tahan teha võimaluse lisada korduvat sõidupakkumist, et ei peaks igat pakkumist eraldi sisestama. Probleem on aga, kuidas näidatakse ainult siis nädalapäevi E-P valides menüüst "Iga nädal" . Kui valida näiteks "iga päev", siis ei kuvata nädalapäevi E-P.
PHP kood:


// korduse sagedus
$sel =& $form->addElement('hierselect','sagedus''Kordus iga');
$options array($kordamise_sagedus);
$sel->setOptions($options);
if (
$sagedus == 'iga nädal') {
$form->addElement('checkbox''esmaspäev''Esmaspäev');
$form->addElement('checkbox''teisipäev''Teisipäev');
$form->addElement('checkbox''kolmapäev''Kolmapäev');
$form->addElement('checkbox''neljapäev''Neljapäev');
$form->addElement('checkbox''reede''Reede');
$form->addElement('checkbox''laupäev''Laupäev');
$form->addElement('checkbox''pühapäev''Pühapäev');
}



Kuidas seal if osas teada saada, mis hierselecti juures valiti?

___________________________________________________
Kui sul pole midagi öelda, ole vait.

14.10.2005 20:45:45 Vajutades siia näed kasutaja mairo22 profiili

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

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

    Vaata selle lehe printerisõbralikku versiooni

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

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