Hy leutz
also gleich zur sache...
ich hab eine website und wollte dynamische selectboxen basteln...
wenn ich in einer box einen ort auswähle, sollen in der anderen box alle Discos dieses ortes angezeigt werden... ich bekomms nicht hin...
Hier die codes...
meine eventsuche.php
die ajax.php
und die funktion zum laden der selectbox (nur eine weil die andere das selbe nur in grün ist )
thx für hilfe...
also gleich zur sache...
ich hab eine website und wollte dynamische selectboxen basteln...
wenn ich in einer box einen ort auswähle, sollen in der anderen box alle Discos dieses ortes angezeigt werden... ich bekomms nicht hin...
Hier die codes...
meine eventsuche.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <link rel="stylesheet" type="text/css" href="badcat.styles.css"> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>www.badcat-events.de</title> <script type="text/javascript"> <!-- /** * clears a select form element * * @param targetSel - dom reference to the select element */ function clearSelect(targetSel) { for (var i=targetSel.length; i>=0; i--) { targetSel.options[i] = null; } } /** * sends a request under usage of a loading graphic - targettable has to be positioned relative * * @param srcref - reference to the select element with chosen data * @param target - form element name of target element */ function sendRequest(domref, target) { var req; try { req = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { // no AJAX Support } req.onreadystatechange = function() { if ((req.readyState == 4) && (req.status == 200)) { // merge empty line with response var data = eval('(' + req.responseText + ')'); var targetRef = document.getElementById(target); var targetSel = targetRef.getElementsByTagName('select')[0]; alert(data[1].text); // clear old data clearSelect(targetSel); // fill with data from json response for(var x in data) { targetSel.appendChild(new Option( data[x].text, data[x].value )); } // clear all followups while(targetSel.followup) { targetRef = document.getElementById(targetSel.followup); // mark next select targetSel = targetRef.getElementsByTagName('select')[0]; // clear old data clearSelect(targetSel); } } } req.open("POST", "ajax.php", true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // send empty post with initial load req.send(domref !== null ? 'value='+domref.value+'&name='+domref.name : ''); return false; // return false to avoid reload/recentering of the page } //--> </script> </head> <body> <div id="container"> <?require("phpklassen/menue.php");?> <div id="content"> <? if(isset($_REQUEST["Aktion"])){ $Aktion = "Suchen"; } else{ $Aktion = null; } if($Aktion == "Suchen"){ require ("phpklassen/eventssuchen.varupdate.sqlbuild.php"); } echo "Du suchst ein bestimmtes Event?<br><br>"; ?> <form name="Suchformular" action="<?echo $_SERVER[PHP_SELF];?>" method="post"> <input type="hidden" name="Aktion" value="Suchen"> <table border="0"> <tr> <td align="right"> Ort: </td> <td id="Orte"> <?require("phpklassen/load.orte.liste.php");?> </td> <td align="right"> Club: </td> <td id="Clubs"> <?require("phpklassen/load.club.liste.php");?> </td> </tr> <tr> <td align="right"> Eventname: </td> <td> <input type="text" name="eventname" value="<?echo $eventname?>"> </td> </tr> <tr> <td align="center" colspan="4"><input type="image" src="Bilder/pfoten/pfotemitlupe.gif" width="60" height="60" name="Aktion" ></td> </tr> </table> </form> <br> <?if($Aktion == "Suchen"){ require ("phpklassen/eventssuchen.php"); }?> </div> </body> </html>
die ajax.php
PHP Code:
<?php
$SelectedValue = isset($_REQUEST['value']) ? $_REQUEST['value'] : 0;//Wert des eintrags
$SelBoxName = isset($_REQUEST['name']) ? $_REQUEST['name'] : 0;//Name der selectbox
$Clubs = array();
$Orte = array();
$i =0;
//-------------------------HIER IST STANDART-------------------------
if (strcmp($SelBoxName, "Club") != 0){
//----Laden ALLER Orte in ein Array----
require ("phpklassen/get.db.connection.php");
$query = "SELECT DISTINCT Ort FROM Clubs ORDER BY Ort"or die(mysql_error());
$result = mysql_query($query)or die(mysql_error());
if ($_REQUEST[Ort] != null && $_REQUEST[Ort] != ""){
$Ort = $_REQUEST[Ort];
}
while ($line = mysql_fetch_array($result)){
array_push($Orte, $line[Ort]);
}
mysql_free_result($result);
mysql_close();
//------For Anzahl Orte die Orte in ein 2-Dimensionales Array schreiben für aufbau der selectbox
// for($j=0; $j<count($Orte); $j++) {
//
// $NewOrt = str_replace("ß", "ss", $Orte[$j]);
//
// $data[0][$j] = array(
// 'value' => $NewOrt,
// 'text' => $NewOrt,
// );
// }
}
//--------------------------------------------------------------------------------
//-----------------------Laden der Orte-SelectBox---------------------------------
//--------------------------------------------------------------------------------
if (strcmp($SelBoxName, "Club") == 0){
//----------Laden ALLER Orte in ein Array-----
require ("phpklassen/get.db.connection.php");
$query = "SELECT DISTINCT Name FROM Clubs ORDER BY Name"or die(mysql_error());
$result = mysql_query($query)or die(mysql_error());
array_push($Clubs, "");
//-------Alle Clubs in ein Array laden-------------------------
while ($line = mysql_fetch_array($result)){
array_push($Clubs, $line["Name"]);
}
mysql_free_result($result);
mysql_close();
//-------------------------------------------------------------
for($k=0; $k<count($Clubs); $k++) {
//---------Clubs laden---------------------
require ("phpklassen/get.db.connection.php");
if (isset($_REQUEST['value']) && $_REQUEST['value'] != ""){
$Club = $_REQUEST['value'];
$Club = str_replace("ss", "ß", $Club);
$Club = str_replace("ae", "ä", $Club);
$Club = str_replace("oe", "ö", $Club);
$Club = str_replace("ue", "ü", $Club);
$query = "SELECT DISTINCT Ort FROM Clubs WHERE `Name` = '".$Club."' ORDER BY Name";
}
else{
$query = "SELECT DISTINCT Ort FROM Clubs ORDER BY Ort";
}
$result = mysql_query($query);
$z = 1;
if ($_REQUEST['value'] == ""){
$data[$Clubs[$k]][0] = array(
'value' => "",
'text' => "Alle Orte",
);
}
while ($line = mysql_fetch_array($result)) {
$NewOrt = str_replace("ß", "ss", $line["Ort"]);
$NewOrt = str_replace("ä", "ae", $NewOrt);
$NewOrt = str_replace("ö", "oe", $NewOrt);
$NewOrt = str_replace("ü", "ue", $NewOrt);
$data[$Clubs[$k]][$z] = array(
'value' => $NewOrt,
'text' => $NewOrt,
);
$z++;
}
mysql_free_result($result);
mysql_close();
}
}
//----------------------------------------------------------------
//----------------Laden der Clubs-SelectBox-----------------------
//----------------------------------------------------------------
//Wenn SelectBox - Ort verändert wurde...
if (strcmp($SelBoxName, "Ort") == 0){
//Wenn ein Wert übergeben wurde...
if (isset($_REQUEST['value']) && $_REQUEST['value'] != null && $_REQUEST['value'] != ""){
//Für Gesamtanzahl der Orte in der DB...
for($k=0; $k<count($Orte); $k++) {
//---------Clubs laden---------------------
require ("phpklassen/get.db.connection.php");
if (isset($_REQUEST['value']) && $_REQUEST['value'] != ""){
$Ort = $_REQUEST['value'];
$Ort = $_REQUEST['value'];
$Ort = str_replace("ss", "ß", $Ort);
$Ort = str_replace("ae", "ä", $Ort);
$Ort = str_replace("oe", "ö", $Ort);
$Ort = str_replace("ue", "ü", $Ort);
$query = "SELECT DISTINCT Name FROM Clubs WHERE `Ort` = '$Ort' ORDER BY Name";
}
else{
$query = "SELECT DISTINCT Name FROM Clubs ORDER BY Name";
}
$result = mysql_query($query);
if ($_REQUEST[Club] != null && $_REQUEST[Club] != ""){
$Club= $_REQUEST[Club];
}
$z = 1;
$data[$Orte[$k]][0] = array(
'value' => "",
'text' => "Alle Clubs",
);
while ($line = mysql_fetch_array($result)) {
$NewName = str_replace("ß", "ss", $line["Name"]);
$NewName = str_replace("ä", "ae", $NewName);
$NewName = str_replace("ö", "oe", $NewName);
$NewName = str_replace("ü", "ue", $NewName);
$data[$Orte[$k]][$z] = array(
'value' => $NewName,
'text' => $NewName,
);
$z++;
}
mysql_free_result($result);
mysql_close();
}
}
}
// access the childs with its parent index
$return = $data[$SelectedValue];
echo json_encode($return);
?>
PHP Code:
<?#---------Lädt eine SelectListe aller Orte die in der DB Stehen-------------
try{
require ("get.db.connection.php");
$query = "SELECT DISTINCT Ort FROM Clubs ORDER BY Ort"or die(mysql_error());
$result = mysql_query($query)or die(mysql_error());
if ($_REQUEST[Ort] != null && $_REQUEST[Ort] != "")$Ort = $_REQUEST[Ort];
?>
<select name="Ort" size="1" onchange="sendRequest(this, 'Clubs')">
<option value="">Alle Orte</option>
<?while ($line = mysql_fetch_array($result)){
$NewName = str_replace("ß", "ss", $line["Ort"]);
$NewName = str_replace("ä", "ae", $NewName);
$NewName = str_replace("ö", "oe", $NewName);
$NewName = str_replace("ü", "ue", $NewName);
?>
<option value="<?PHP echo $NewName;?>" <? if($Ort == $line[Ort]){echo "selected";}?>><?PHP echo $NewName;?></option>
<?}?>
</select>
<?mysql_free_result($result);
mysql_close();
}
catch (exception $e){
echo "Fehler beim laden der Orte-Select-Liste! Fehler: ".$e;
}?>
Comment