so meine freunde, ich gebe es auf, ich kann nicht mehr, habe es versucht und versucht… möchte einfach nicht klappen, hoffe ihr könnt mir weiter helfen…
Zum Problem:
Habe eine Datenbank mit 2 Tabellen, 1Kunde , 1Projekt
habe einen formular, mit 3 dropdownliste. 1 ist gefüllt mit jahreszahlen, der rest ist leer…
nun möchte ich, sobald ich ein jahr auswähle, mir das programm die dazu gehörigen daten (Kunden/Projekt) aus der DB holt, soweit so gut…
Meine Bemühungen sehen so aus:
REQUEST (ein Teil):
function sendRequestYear(f){
xhr = http();
xhr.open("GET","all.php?name=" + escape(document.forms['f2'].Jahr.value), true);
xhr.onreadystatechange = output_all;
xhr.send( null );
}
function output_all(){
if( 4 == xhr.readyState ){
document.getElementById("all").style.visibility = "visible";
inhalt = xhr.responseText;
var laenge = document.getElementById("liste").childNodes.length;
for(i = 0; i < laenge; i++) {
var loeschen = document.getElementById("liste").firstChild;
document.getElementById("liste").removeChild(loeschen );
var l2 = document.getElementById("kunde").firstChild;
document.getElementById("kunde").removeChild(l2 );
}
liste = document.getElementById("liste");
rueckgabe = eval ( "(" + inhalt + ")" );
for ( i = 0; i < rueckgabe.length; i++ ) {
var projekte = rueckgabe[i];
li = document.createElement("option");
li2 = document.createElement("option");
li.setAttribute("value", projekte.Projekt);
li2.setAttribute("value", projekte.Kunde);
var textknoten = document.createTextNode( projekte.Projekt );
var t2 = document.createTextNode( projekte.Kunde );
li.appendChild( textknoten );
li2.appendChild( t2 );
liste.appendChild( li );
kunde.appendChild( li2 );
}
}
}
-
all.php:
[PHP]
if(isset($_GET[‚name‘])){require_once 'passwd.inc.php'; require_once 'connect.inc.php'; require_once 'json.php'; $json = new Services_JSON; //$sql = 'SELECT * FROM projekte WHERE Jahr = "' . $_GET['name'] . '"'; $sql = 'SELECT DISTINCT Projekt FROM projekte WHERE Jahr = "' . $_GET['name'] . '"'; $result = mysql_query($sql); while($tupel = mysql_fetch_array($result, MYSQL_ASSOC) ) $projekte[] = $tupel; $sql2 = 'SELECT distinct Kunde FROM projekte WHERE Jahr = "' . $_GET['name'] . '" '; $result = mysql_query($sql2); while($tupel = mysql_fetch_array($result, MYSQL_ASSOC) ) $projekte[] = $tupel; echo $json->encode($projekte);
}
[/PHP]
als Ergebnis:
[{„Projekt“:„Intranet“},{„Projekt“:„Infomaterial“},{„Projekt“:„Geburtstag“},{„Projekt“:„Poker“},{„Kunde“:„Klein“},{„Kunde“:„Hansen“},{„Kunde“:„Meier“},{„Kunde“:„Franke“}]
nun kriege ich aber in die 1. DDListe insgesamt 8 einträge, davon jedoch die letzten 4 als ‚undefined‘ (da die letzten 4 zum Kunden gehören)
genau dasselbe natürlich auch beim Kunden (da sind die 1. vier undefined, da zugehörigkeit zum projekt)
Wie kann ich diese ‚undefined‘-Einträge löschen?
Bei einem Ergebnis von 50 Kunden und 50 Projekte habe ich jedesmal ja auch 50 undefined-Einträge stehen, sieht katastrophal aus!!!
Bitte helfen, oder anderen Vorschlag, bin flexibel, hauptsache es funzt
danke und gruß
bombbass