sql >> Database >  >> RDS >> Mysql

PHP MYSQL dynamische selectiebox

Maak eerst het no1 select-menu met php zoals je hierboven vermeldde. Voeg er dan een 'change' eventListener aan toe, zoals:

$('#select1').change(createSelect2);

function createSelect2(){
    var option = $(this).find(':selected').val(),
    dataString = "option="+option;
    if(option != '')
    {
        $.ajax({
            type     : 'GET',
            url      : 'http://www.mitilini-trans.gr/demo/test.php',
            data     : dataString,
            dataType : 'JSON',
            cache: false,
            success  : function(data) {            
                var output = '<option value="">Select Sth</option>';

                $.each(data.data, function(i,s){
                    var newOption = s;

                    output += '<option value="' + newOption + '">' + newOption + '</option>';
                });

                $('#select2').empty().append(output);
            },
            error: function(){
                console.log("Ajax failed");
            }
        }); 
    }
    else
    {
        console.log("You have to select at least sth");
    }
}

Nu heeft het no2 select-menu nieuwe opties volgens de geselecteerde 1 optie.

En het php-bestand:

<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

if(isset($_GET['option']))
{
    $option = $_GET['option'];

    if($option == 1)
    {
        $data = array('Arsenal', 'Chelsea', 'Liverpool');
    }
    if($option == 2)
    {
        $data = array('Bayern', 'Dortmund', 'Gladbach');
    }       
    if($option == 3)
    {
        $data = array('Aek', 'Panathinaikos', 'Olympiakos');
    }

    $reply = array('data' => $data, 'error' => false);
}
else
{
    $reply = array('error' => true);
}

$json = json_encode($reply);    
echo $json; 
?>

Natuurlijk gebruik ik daar wat demo-gegevens, maar je kunt een sql-query maken, de $data-array daar vullen en ze als json met de juiste headers verzenden. Gebruik ten slotte wat meer js voor het tweede select-menu:

$('#select2').change(selectSelect2);

function selectSelect2(){
    var option = $(this).find(':selected').val();
    if(option != '')
    {
        alert("You selected: "+option);
    }
    else
    {
        alert("You have to select at least sth");
    }
}

Kijk hier http://jsfiddle.net/g3Yqq/2/ een werkend voorbeeld



  1. Zelf meedoen in orakel met voorbeelden

  2. Hoe krijg ik een bestand van BLOB in Oracle?

  3. Wat zijn sequentiële versus parallelle streams in Java?

  4. Gids voor het ontwerpen van een database voor quiz in MySQL