Keresés

Új hozzászólás Aktív témák

  • bLaCkDoGoNe

    veterán

    válasz Panther #1163 üzenetére

    Köszönöm szépen, ez így működik! Örök hálám üldözni fog! :)

  • bLaCkDoGoNe

    veterán

    Sziasztok,

    AJAX-szal akadt egy kis problémám... most tanulgatom a dolgot, és egy olyan (egyszerűnek tűnő) dolgot szeretnék megcsinálni, hogy van egy formom, benne 2 lenyíló lista, és a második lista elemei aszerint épüljenek fel, hogy mit választottam ki az első lenyíló listában.

    Az első listában minden elem rendelkezik egy értékkel. Ezzel az értékkel meghívok egy másik php oldalt, ami ennyit csinál:

    <?php
    switch($_GET['mit'])
    {
    case "1":
    echo "<option value='11'>Első.1</option>";
    echo "<option value='12'>Első.2</option>";
    echo "<option value='13'>Első.3</option>";
    break;
    case "2":
    echo "<option value='21'>Második.1</option>";
    echo "<option value='22'>Második.2</option>";
    echo "<option value='23'>Második.3</option>";
    break;
    case "3":
    echo "<option value='31'>Harmadik.1</option>";
    echo "<option value='32'>Harmadik.2</option>";
    echo "<option value='33'>Harmadik.3</option>";
    break;
    }
    ?>

    Elvileg (én legalábbis azt hittem) így feltölti a második lenyíló listát az elsőnek megfelelő al-elemekkel, de nagyon nem akar működni. A FireBug szerint megjön a megfelelő response (pl. <option value='21'>Második.1</option><option value='22'>Második.2</option><option value='23'>Második.3</option>), de az elemek nem jelennek meg a második listában.

    Ha segít, itt van a másik oldal kódja is, hátha segít kitalálni, mit szúrtam el:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <script language="javascript" type="text/javascript">

    function getHTTPObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {

    xmlhttp = false;
    }
    }
    @else
    xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
    xmlhttp = new XMLHttpRequest();
    } catch (e) {
    xmlhttp = false;
    }
    }
    return xmlhttp;
    }
    var http = getHTTPObject();

    function updateLista() {
    var mit = document.getElementById("select_lista").value;
    http.open("GET", url + escape(mit), true);
    http.onreadystatechange = handleHttpResponse;
    http.send(null);
    }

    var url = "valaszt.php?mit="; // The server-side script function handle
    function handleHttpResponse()
    { if (http.readyState == 4) {
    result = http.responseText;
    document.getElementById('kivalasztott_ertek').value = result;
    }
    }

    </script>
    </head>
    <body>

    <form action='select.php?action=submit' method='post' name='valasztas'>
    <select name='select_lista' id='select_lista' onChange='updateLista()'>
    <option value='1'>Első</option>
    <option value='2'>Második</option>
    <option value='3'>Harmadik</option>
    </select>
    <br />
    <select name='kivalasztott_ertek' id='kivalasztott_ertek'>
    </select>
    </body>
    </html>

    Bármilyen ötletnek, tanácsnak örülnék, mert itt elakadtam, és bár csak most ismerkedem az AJAX-szal, azt hittem, hogy ez nem lesz túl nagy falat. :D Köszi előre is.

Új hozzászólás Aktív témák