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, 1*Kunde , 1*Projekt
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):
+ all.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
Zum Problem:
Habe eine Datenbank mit 2 Tabellen, 1*Kunde , 1*Projekt
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):
Code:
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);
}
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