Hallo,
folgendes kleines Problem stellt sich mir. Ich habe ein Select-Feld erzeugt, welches mit Werte gefüllt ist, die aus einer Datenbank ausgelesen werden.
Mit Hilfe von Ajax soll der Wert, welcher im Selectfeld ausgewählt wird an die Datei "request.php" übergeben werden (wird verwendet um Daten aus einer Datenbank auszulesen). Wichtig ist mir bei der ganzen Sache, dass sobald ein Wert im Selectfeld ausgewählt wird, dieser sofort an die "request.php" gesandt wird (ganze soll ohne Button funktionieren).
Mein nicht ganz korrekter Code sieht wie folgt aus (anscheinend funktioniert die Wertübergabe in <select name="Projnr" onchange="setRequest(value)"> nicht ganz bis überhaupt nicht):
weiterhin die "httrequest.php" (starkt vereinfacht ohne Datenbank-abfrage):
Übrigens, super wäre eine Lösung wo ich komplett auf die "httprequest.php" verzichten kann, sprich das ganze in einer PHP/HTML-Datei unterbracht wird.
vielen Dank schon mal
LG
folgendes kleines Problem stellt sich mir. Ich habe ein Select-Feld erzeugt, welches mit Werte gefüllt ist, die aus einer Datenbank ausgelesen werden.
Mit Hilfe von Ajax soll der Wert, welcher im Selectfeld ausgewählt wird an die Datei "request.php" übergeben werden (wird verwendet um Daten aus einer Datenbank auszulesen). Wichtig ist mir bei der ganzen Sache, dass sobald ein Wert im Selectfeld ausgewählt wird, dieser sofort an die "request.php" gesandt wird (ganze soll ohne Button funktionieren).
Mein nicht ganz korrekter Code sieht wie folgt aus (anscheinend funktioniert die Wertübergabe in <select name="Projnr" onchange="setRequest(value)"> nicht ganz bis überhaupt nicht):
PHP-Code:
<?php
// Verbindung zur Datenbank
...
// Funktion print_status_options, fuer Uebergabe der Werte an das Select-Feld in HTML
function print_status_options($wert=0, $fue_nr) {
for ($i=0;$i<count($fue_nr);$i++) {
echo '<option value="'.$fue_nr[$i].'">'.$fue_nr[$i].'</option>'."\n";
}
}
?>
<html>
<head>
<script type="text/javascript">
var xmlhttp = false;
function setRequest(value) {
//Request erzeugen: fuer Mozilla
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
// fuer IE
else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//ueberpruefen ob der Request erzeugt wurde
if (!xmlhttp) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
xmlhttp.open('post', 'httrequest.php',true);
xmlhttp.setRequestHeader('Content-Type', application/x-www-form-urlencoded');
xmlhttp.send('name='+value);
xmlhttp.onreadystatechange = interpretRequest;
}
}
function interpretRequest() {
switch (xmlhttp.readyState) {
// wenn der readyState gleich 4 ist und der xmlhttp.status 200 ist, dann ist alles korrekt gelaufen
case 4:
if (xmlhttp.status != 200) {
allert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+xmlhttp.status")
} else {
var content = xmlhttp.responseText;
// den Inhalt des Requestes (xmlhttp) in das <div> schreiben
document.getElementById('content').innerHTML = content
}
break;
default:
break;
}
}
</script>
</head>
<body>
<div id="ergebnis"></div>
<form name="Auswahlform" action="">
<select name="Projnr" onchange="setRequest(value)">
<option value="0"
<?php echo (!isset($wert) ? "selected" : ""); ?>
>--- Bitte Projektnummer wählen ---</option>
<?php
print_status_options($wert, $fue_nr);
?>
</select>
</form>
</body>
</html>
PHP-Code:
<?php
header('Content-Type: Text/html; charset=utf-8');
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0')
$nr = $_POST['name'];
echo $nr;
// $nr wird fuer Datenbankabfrage verwendet
?>
vielen Dank schon mal
LG
Kommentar