» »

avtomatsko polnenje dveh <select> -problem

avtomatsko polnenje dveh <select> -problem

Hawc ::

Pozdravljeni!

Delam neko nalogo(spletna redovalnica) v phpju pa sem prišel do točke ko rabim da v enem select boxu izberem razred(recimo 3.a) potem pa se mi spodaj prikaže še en select z vsemi dijaki v tem razredu. Pa brez osveževanja mora biti torej sem uporabil ajax httprequest. Seveda še nikoli nisem delal z jeziki ki se rabijo php/xml/javascript/ajax zato nevem kaj dosti razen kaj sem gledal na w3sqls (pač ptujska elektro šola).
<div class="telo">
            <div id="izberi_razred">
            <?php
                if($_GET['razred']!=0) {
                    $idr=$_GET['idr'];
                    echo 'Razred: '.$_GET['razred'].'<br />';
                    include "viewocene.php";
                } else if($_GET['razred']==0) {
                    $idp=$_GET['predmet'];
                    $idpf=$_SESSION['profinfo']->id_profesor;
                    $target_div="'izberi_dijak'";
                    $dbh=connect_to_server();
                    $result=pg_query("select * from prof_razred where id_profesor=$idpf AND id_predmet=$idp;");
                    echo '<form><select name="razred_list" onchange="napolniDijake(this.value,'.$target_div.');">';
                    echo '<option value="0">izberi razred</option>';
                    while($row=pg_fetch_object($result)) {
                        echo '<option value="'.$row->id_razred.'">'.$row->letnik.'.'.$row->oddelek.'</option>';
                    }
                    echo '</select></form>';
                    pg_free_result($result);
                    pg_close($dbh);
                }
            ?>
            </div>
            <div id="izberi_dijak">
                <?php //if($_GET['razred']==0) include("viewocene.php"); ?>
            </div>
            <div id="dijak_ocene">
                Ocene dijaka
            </div>
        </div>


tukaj so podprogrami za xmlhttprequest:

var xmlhttp; //stvari ki se nanašajo na XmlHttpReq
function showUser(str,id,id_r) {
    xmlhttp=GetXmlHttpObject();
    if(xmlhttp==null) {
        alert("Brskalnik ne podpira http request!");
        return;
    }
    var url="tabela_ocene.php";
    url=url+"?idd="+str;
    url=url+"&idr="+id_r;
    url=url+"&ids="+Math.random();
    //xmlhttp.onreadystatechange=stateChanged(id);
    xmlhttp.open("GET", url, false);
    xmlhttp.send(null);
    document.getElementById(id).innerHTML=xmlhttp.responseText;
    
}
function stateChanged(id) {
    if(xmlhttp.readyState==4) {
        document.getElementById(id).innerHTML=xmlhttp.responseText;

    }
}
function GetXmlHttpObject() {
    if(window.XMLHttpRequest) {
        //IE7+,FF,Chrome,Opera,Safari
        return new XMLHttpRequest();
    }
    if(window.ActiveXObject) {
        //IE6,IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}
//var xmlhttp2;
function napolniDijake(idr,id) {
    var xmlhttp2=GetXmlHttpObject();
    if(xmlhttp2==null) {
        alert("Brskalnik ne podpira http request!");
        return;
    }
    var url="viewocene.php?idr="+idr;
    xmlhttp2.open("GET", url, false);
    xmlhttp2.send(null);
    document.getElementById(id).innerHTML=xmlhttp2.responseText;
    alert("url:"+url);
}


Ta stran bi se morala izvesti in tako napolniti drugi select z dijaki ampak se v tem primeru izvede le nekaj komand. Komande kjer sem napisal v komentar se ne izvedejo seveda nikjer nobenega errorja(kar ponavadi so če npr. sql query slab). Se pa ta stran uporablja še nekje drugje, tam pa vse lepo laufa. Aja pa ne delam z mysql ampak z postgres.

<?php
            ini_set('display_errors', 'On');
            error_reporting(E_ALL | E_STRICT);
            $idr=$_GET['idr'];
            $target_div="'dijak_ocene'";
            echo '<form>';
            echo '<select name="dijaki_list" onchange="showUser(this.value,'.$target_div.','.$idr.');">';
            echo '<option value="0">Izberi dijaka</option>';
            $dbh=connect_to_server();                              //ta se ne izvede
            $i=0;
            //echo "<option>$dbh</option>";
            $result=pg_query($dbh,"select id_dijak,ime,priimek from dijakview where id_razred=$idr;");            //ta se ne izvede
            while($row=pg_fetch_object($result)) {                   //ta se ne izvede
                  echo '<option value="'.$row->id_dijak.'">'.$row->priimek.', '.$row->ime.'</option>';            //ta se ne izvede
                  $i++;                 //ta se ne izvede
            }//ta se ne izvede
            echo "<option>i:$i</option>";                 //ta se ne izvede
            echo "<option>".pg_last_error()."</option>";           //ta se ne izvede
            pg_free_result($result);               //ta se ne izvede
            pg_close($dbh);                //ta se ne izvede
            echo '</select></form>';
            ?>

Zdaj pa če mi lahko kdo pomaga to rešiti prosim.

Hawc ::

ja sem našel težavo tak da nevermind


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

mySQL izpis many-to-many to matrix

Oddelek: Izdelava spletišč
7890 (651) klemenSLO
»

Sortiranje podatkov v mysql podatkovni bazi

Oddelek: Programiranje
6894 (702) i33a
»

[sql] problem

Oddelek: Programiranje
8719 (601) tx-z
»

Visual Basic in Excel

Oddelek: Programiranje
262670 (2236) Vesoljc
»

en SQL se noče generirat v možganih

Oddelek: Izdelava spletišč
121053 (879) zdravc

Več podobnih tem