Hallo Forum,
ich habe ein Problem bei dem ich einfach nicht weiter komme.
Ich muss ein chained select programmieren aber das funktioniert nicht, da die variablen nicht an die Serversitepage übergeben werden.
Die variablen $q, $f und $e sind in der getstreet.php immer leer.
index.php
Hier die getstreet.php die durch die funktion showStreet aufgerufen wird.
und hier die func.js
Könnt ihr mir weiterhelfen?
Grüße Tunel
ich habe ein Problem bei dem ich einfach nicht weiter komme.
Ich muss ein chained select programmieren aber das funktioniert nicht, da die variablen nicht an die Serversitepage übergeben werden.
Die variablen $q, $f und $e sind in der getstreet.php immer leer.
index.php
HTML:
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<SCRIPT language="JavaScript" src="func.js" type="text/javascript"></script>
<title>Test</title>
</head>
<body>
<?php
include('./odbc_connect.inc');
$sqlobjekt = "SELECT No_ AS 'no', Description AS 'des'
FROM [RE Object]
WHERE [Management End Date] = '1753-01-01 00:00:00.000' AND
No_ BETWEEN '0001' AND '0998'";
$cur = odbc_exec($cnx, $sqlobjekt);
?>
<form name="Form1">
<fieldset>
<legend>Test</legend>
<p>
<label>Objekt:</label>
<select name="ddlobjekt" onchange="showStreet(this,document.Form1.ddlstreet)">
<option value="-1">Wähle ein Objekt aus!</option>
<?php
while($row = odbc_fetch_row($cur)){
$objno = odbc_result($cur,"no");
$objdes = utf8_encode(odbc_result($cur,"des"));
echo "<option value='" . $objno . "'>" . $objno . ", " . $objdes . "</option>";
}
?>
</select>
<label>Straße/Hauseingang:</label>
<select name="ddlstreet">
<option value="<?php echo isset($street) ?>"><?php echo isset($street) ?></option>"
</select>
</p>
</fieldset>
</form>
</body>
</html>
Hier die getstreet.php die durch die funktion showStreet aufgerufen wird.
PHP:
<?php
header('Content-Type: text/xml');
$strXML = '<?xml version="1.0" encoding="UTF-8"?>';
//Variablen aus auslesen
$q = isset($_GET["q"]);
$f = isset($_GET["f"]);
$e = isset($_GET["e"]);
//Datenbankabfrage
include('./odbc_connect.inc');
$keine = array("&", "Ä", "Ü", "Ö", "ß", "ä", "ü", "ö", "`", "'", ",", ":", ";", "´","€");
$dafuer = array("+", "Ae", "Ue", "Oe", "ss", "ae", "ue", "oe", " ", " ", " "," ", " "," ","Euro");
$keine1 = array("&", "Ä", "Ü", "Ö", "ß", "ä", "ü", "ö", "`", "'", ":", ";", "´","€");
$dafuer1 = array("+", "Ae", "Ue", "Oe", "ss", "ae", "ue", "oe", " ", " "," ", " "," ","Euro");
$sqlstreet = "Select mas.[House] AS 'Haus',
mas.[Address] AS 'Address'
FROM [01_GBH"."$"."Unit Master Data] AS mas
INNER JOIN [01_GBH"."$"."RE Object] as obj
ON mas.[Object No_] = obj.No_
WHERE obj.[Management End Date] = '1753-01-01 00:00:00.000' AND obj.No_ = '".$q."'
GROUP BY mas.[House], mas.[Address]
Order BY mas.[House] ASC";
$cur1 = odbc_exec($cnx, $sqlstreet);
//Erstelle XML-Datei
$strXML .= '<selectChoice>';
$strXML .= '<selectElement>';
$strXML .= '<formName>'. $f .'</formName>';
$strXML .= '<formElem>'. $e .'</formElem>';
$strXML .= '</selectElement>';
while($row1 = odbc_fetch_row($cur1)){
$strXML .= '<entry>';
$strXML .= '<optionText>'; $strXML .= str_replace($keine, $dafuer, odbc_result($cur1,"Address")); $strXML .= '</optionText>';
$strXML .= '<optionText>'; $strXML .= str_replace($keine, $dafuer, odbc_result($cur1,"Haus")); $strXML .= '</optionText>';
$strXML .= '</entry>';
}
$strXML .= '</selectChoice>';
echo $strXML;
?>
und hier die func.js
Code:
function showStreet(oElem,oTarget){
var strValue = oElem.options[oElem.selectedIndex].value;
var url ="getstreet.php?q=" + strValue + "&f=" + oTarget.form.name + "&e=" + oTarget.name;
//var strPara = "q=" + strValue + "&f=" + oTarget.form.name + "&e=" + oTarget.name;
xmlHttp=new XMLHttpRequest();
if (xmlHttp==null) {
alert ("Your browser does not support AJAX!");
return;
}
xmlHttp.onreadystatechange=FillDropDown;
xmlHttp.open("GET",url,true);
xmlHttp.send();
//alert(url);
//var loader = new net.ContentLoader(url,FillDropDown,null,"POST",strPara);
}
function FillDropDown() {
if (xmlHttp.readyState==4) {
var xmlDoc = this.responseXML.documentElement;
var xSel = xmlDoc.getElementsByTagName('selectElement')[0];
var strFName = xSel.childNodes[0].firstChild.nodeValue;
var strEName = xSel.childNodes[1].firstChild.nodeValue;
//alert(strEName);
//alert(strFName);
var objDDL = document.forms[strFName].elements[strEName];
objDDL.options.length = 0;
var xRows = xmlDoc.getelementsByTagName('entry');
for(var i = 0;i<xRows.length;i++){
var theText = xRows[i].childNodes[0].firstChild.nodeValue;
var theValue = xRows[i].childNodes[0].firstChild.nodeValue;
var option = new Option(theText, theValue);
try{
objDDL.add(option,null);
} catch (e){
objDDL.add(option,-1);
}
}
}
}
Könnt ihr mir weiterhelfen?
Grüße Tunel