Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

Select change input

bewerkt ma 28 dec 2015 in PHP, MySQL Posts: 732
Wil het volgende realiseren.

Men kiest een pagina.
De pagina's worden weergegeven doormiddel van een php functie die de page haalt uit een table.


<select name="page" class="selectpicker show-menu-arrow show-tick" id="page" required data-width="100%">
<?php echo selectListOption( 'noColumn', '', 'page', 'rvd_pages', '', '', '', '', '', '' ); ?>
</select>

Weergave is dan:


<select name="page" class="selectpicker show-menu-arrow show-tick" id="page" required data-width="100%">
<option value="home">Home pagina</option>
<option value="informatie">Info pagina</option>
</select>

Zodra men nu informatie selecteert, moeten eigen de subpagina's worden weergegeven die men weer kan selecteren.


<select name="subpage" class="selectpicker show-menu-arrow show-tick" id="subpage" required data-width="100%">
<option class="get-class" disabled value="">Selecteer een Subpagina</option>
<?php echo selectListOption( 'oneColumn', '', 'subpage', 'rvd_pages', 'page', 'informatie', '', '', '', '' ); ?>
</select>

Nu de vraag hoe kan ik bij subpage aangeven in de php functie dat de page informatie is gekozen, zodat de functies de subpagina's gaat laden uit de database waarvan de pagina inofrmatie is.

Zelf dacht ik aan js door bv. subpagina's een id te geven en op display none te zetten en als men kiest voor informatie dat de id display block wordt.
Maar dan zou ik alle subpagina's moeten uitlezen en in een select box zetten met een id.

Even meedenken aub ;)
Bvd.
If it's not fun, you're not doing it right!

Reacties

  • Je kunt toch (als ik je vraag goed begrijp) gewoon een divje loaden met een geselecteerde subpagina.
  • PMPosts: 732
    Dat kan, en dan een select optie met alle subpages voor een geselecteerde hoofdpagina.
    Maar soms zijn er wel 10 hoofdpagina's waar weer een 10tal of meer subpagina's vallen.
    Dus dan wordt er teveel geladen.

    Dacht misschien met een js functie als men A kiest dat scriptje B wordt uitgevoerd waar dan een php functie wordt aangeroepen die dan de subpagina's van A doet weergeven.

    Is dit mogelijk, grrr ik ben geen JS figuur dus onbekend terein :(
    .
    If it's not fun, you're not doing it right!
  • Ik denk dat ik je vraag niet goed snap, maar met js is alles mogelijk wat ook met php kan (ajax)
    Kun je je vraag wat duidelijker stellen, en dan niet met "hoe jij het doet", maar met "wat je wilt dat er gebeurd".
  • bewerkt di 29 dec 2015
    PMPosts: 415
    Ik heb (wegens toch verveeld) je vraag nog eens 5000 keer gelezen, en dit is een opzetje waar je misschien wat dingen uit kunt gebruiken.

    Even een fictieve database aanmaken (een php file met de naam "fictieve_database.php")

    <?php
    //fictieve database
    $pages = array('home', 'informatie', 'telnummers', 'verkooppunten');
    $subpages = array(
    'informatie' => array('aap', 'noot', 'vuur', 'vis'),
    'telnummers' => array('123', '456', '789'),
    'verkooppunten' => array('Rotterdam', 'Amsterdam')
    );

    //en hier worden de selects voor de subpags gemaakt (dmv POST)(, misschien wil jij hier gewoon alle inhoud al tonen?)
    if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['selected_page']) && !isset($_POST['parent_page']))
    {
    ?>
    <select id="subpages" name="subpages" data-page="<?php echo $_POST['selected_page'];?>">
    <option selected disabled>kies</option>
    <?php
    foreach($subpages[$_POST['selected_page']] as $key => $subpage)
    {
    echo '<option value="'.$key.'">'.$subpage.'</option>';
    }
    ?>
    </select>
    <?php
    }

    //en hier wordt de gekozen subpagina inhoud getoond
    if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['parent_page']) && isset($_POST['selected_sub_page']))
    {
    echo $subpages[$_POST['parent_page']][$_POST['selected_sub_page']];
    }

    En je indexpagina (of whatever filename je gebruikt):



    //PAGINA kiezen en select tonen
    $(document).on('change', '#selected_page', function (event) {
    event.preventDefault();
    $.post( "fictieve_database.php", { selected_page: $('#selected_page').val() })
    .done(function( data ) {
    $('#subselectorparent').html( data );
    });
    });

    //geselecteerde sub pagina opvragen/tonen met bovenstaand gegenereerde select
    $(document).on('change', '#subpages', function (event) {
    event.preventDefault();
    $.post( "fictieve_database.php", { selected_sub_page: $('#subpages').val(), parent_page : $('#subpages').data('page') })
    .done(function( data ) {
    $('#pageloader').html( data );
    });
    });


    <?php
    include ('fictieve_database.php');
    ?>



    kies
    <?php
    foreach($pages as $page)
    {
    echo '<option value="'.$page.'">'.$page.'';
    }
    ?>





    geselecteerde sub pagina inhoud


    EDIT, wel even erbij vermelden dat dit nog niet hufter proof is EN javascript enabled moet zijn, het is puur voor het idee.
    En na de 5001ste keer je post gelezen te hebben, denk ik dat jij een verkorte versie wilt, want je wilt alleen een select maken met subs van de geselecteerde pagina?
    Komt eraan in een paar minuten

    update:


    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

    <script>
    //PAGINA kiezen en select tonen
    $(document).on('change', '#selected_page', function (event) {
    $.post( "fictieve_database.php", { selected_page: $('#selected_page').val() })
    .done(function( data ) {
    $('#subselectorparent').html( data );
    });
    });
    </script>

    <?php
    include ('fictieve_database.php');
    ?>

    <form action="" method="post">
    <select id="selected_page" name="selected_page">
    <option selected disabled>kies</option>
    <?php
    foreach($pages as $page)
    {
    echo '<option value="'.$page.'">'.$page.'</option>';
    }
    ?>
    </select>
    <div id="subselectorparent"><!--hierin komt de subpagina selector--></div>
    </form>

    <?php
    //fictieve database
    $pages = array('home', 'informatie', 'telnummers', 'verkooppunten');
    $subpages = array(
    'informatie' => array('aap', 'noot', 'vuur', 'vis'),
    'telnummers' => array('123', '456', '789'),
    'verkooppunten' => array('Rotterdam', 'Amsterdam')
    );

    //en hier worden de selects voor de subpags gemaakt
    if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['selected_page']))
    {
    ?>
    <select id="subpages" name="subpages">
    <option selected disabled>kies</option>
    <?php
    foreach($subpages[$_POST['selected_page']] as $key => $subpage)
    {
    echo '<option value="...">'.$subpage.'</option>';
    }
    ?>
    </select>
    <?php
    }
  • PMPosts: 732
    Ik ga hier eens even mee spelen, thanks voor mee denken en ik laat iets weten.
    If it's not fun, you're not doing it right!
Login of Registreer om te reageren.