dvhimm
12.06.2006, 21:34:58
Hallo, guten Abend!
Neuer Versuch. Gestern stand ich noch vor dem Abgrund, heute bin ich einen Schritt weiter.
Ich möchte auf Grund eines gewählten Filters die Abfrage meiner Datenbank ergänzen und die Seite sich selbst neu aufrufen lassen. So wenig Java wie möglich (sonst wär ich ja nicht hier im PHP-Forum ;) ).
<?php
session_start(); #hier Sessionauthorisierung mitsenden
# Berechtigungsmapping abholen/get Permissionmapping from database (rwx)
#include("../berechtigungskopf.inc.php");
# ---------------------------------------------------- #
# Ab hier Daten gemäß der Aufgabe abfragen/get server,user,password
include("../dbdata.inc.php");
@mysql_connect($server, $username, $password);
# Datenbankverbindung aufnehmen/get connection
@mysql_select_db($database) or die("Kann nicht mit Berechtigungsdatenbank verknüpfen");
# Abfrage absetzen ----------------------------------- #
if (!empty($_SESSION['subquery'])) {
if ($_SESSION['subquery']=='FilterFamilienname') {
$_SESSION['subquery'] =' ORDER BY Name'; } # standard
$query="SELECT * FROM vw_Facharzt".$_SESSION['subquery']; }
else {
$query="SELECT * FROM vw_Facharzt"; }
# ---------------------------------------------------- #
# and so on
?>
<html>
<head>
<title>Dynamische Auswahl Test</title>
</head>
<body>
<script language="javascript" type="text/javascript">
function hprocess(Filter)
{
subquery="";
if (Filter=="FN") {
subquery=" ORDER BY Name";
}
if (Filter=="FP") {
subquery=" ORDER BY PLZ";
}
if (Filter=="FM") {
subquery="FM"
}
if (Filter=="FA") {
subquery="FA"
}
alert(subquery);
//und so weiter
//location.reload();
}
</script>
<?php
function process($Filter) {
$_SESSION['subquery']='';
if ($Filter=="FN") {
$_SESSION['subquery']=' ORDER BY Name';
}
if ($Filter=="FP") {
$_SESSION['subquery']=' ORDER BY PLZ';
}
if ($Filter=="FR") {
$_SESSION['subquery']=' ORDER BY Fachrichtung';
}
if ($Filter=="FA") {
$_SESSION['subquery']=' WHERE MitgliederAusland=1';
}
return $_SESSION['subquery'];
}
?>
<?php
$filterarten = array(
"FL"=>"",
"FN"=>"Familienname",
"FP"=>"Postleitzahl",
"FR"=>"Fachrichtung",
"FM"=>"Mitglieder",
"FI"=>"Mitglieder Inland",
"FA"=>"Mitglieder Ausland",
"FE"=>"Ehrenmitglieder",
"FD"=>"Diplomierte"
);
?>
<p>
<form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post" >
<select name="Filter" size="1" onChange="process(hprocess(this.form.Filter.options[this.form.Filter.selectedIndex].value))">
<?php
foreach ($filterarten as $key=>$element) {
echo "<option value=$key>$element</option>";
}
?>
</select>
</p>
</form>
<?php
# nice try...
if ($Filter) {
echo "Es ist folgender Filter gewählt:<br>";
foreach($Filter as $element) {
echo "$element<br>";
}
}
echo "$Filter<br>";
echo "$element<br>";
echo $_SESSION['subquery'];
echo "<a href='option_select.php?filter='".$subquery.">filtertest</a>";
?>
</body>
</html>
Ich hab mir zwei Ansätze vorgenommen, entweder Java oder PHP. Am Ende krieg ich ein bisserl was, wenn ich beides verwende, aber am dicken Ende (Neuaufruf) tut sich gar nichts. Kommentare vorhanden, Frust vorhanden, bitte, bitte.
Danke und noch einen schönen Abend.
Henry
Neuer Versuch. Gestern stand ich noch vor dem Abgrund, heute bin ich einen Schritt weiter.
Ich möchte auf Grund eines gewählten Filters die Abfrage meiner Datenbank ergänzen und die Seite sich selbst neu aufrufen lassen. So wenig Java wie möglich (sonst wär ich ja nicht hier im PHP-Forum ;) ).
<?php
session_start(); #hier Sessionauthorisierung mitsenden
# Berechtigungsmapping abholen/get Permissionmapping from database (rwx)
#include("../berechtigungskopf.inc.php");
# ---------------------------------------------------- #
# Ab hier Daten gemäß der Aufgabe abfragen/get server,user,password
include("../dbdata.inc.php");
@mysql_connect($server, $username, $password);
# Datenbankverbindung aufnehmen/get connection
@mysql_select_db($database) or die("Kann nicht mit Berechtigungsdatenbank verknüpfen");
# Abfrage absetzen ----------------------------------- #
if (!empty($_SESSION['subquery'])) {
if ($_SESSION['subquery']=='FilterFamilienname') {
$_SESSION['subquery'] =' ORDER BY Name'; } # standard
$query="SELECT * FROM vw_Facharzt".$_SESSION['subquery']; }
else {
$query="SELECT * FROM vw_Facharzt"; }
# ---------------------------------------------------- #
# and so on
?>
<html>
<head>
<title>Dynamische Auswahl Test</title>
</head>
<body>
<script language="javascript" type="text/javascript">
function hprocess(Filter)
{
subquery="";
if (Filter=="FN") {
subquery=" ORDER BY Name";
}
if (Filter=="FP") {
subquery=" ORDER BY PLZ";
}
if (Filter=="FM") {
subquery="FM"
}
if (Filter=="FA") {
subquery="FA"
}
alert(subquery);
//und so weiter
//location.reload();
}
</script>
<?php
function process($Filter) {
$_SESSION['subquery']='';
if ($Filter=="FN") {
$_SESSION['subquery']=' ORDER BY Name';
}
if ($Filter=="FP") {
$_SESSION['subquery']=' ORDER BY PLZ';
}
if ($Filter=="FR") {
$_SESSION['subquery']=' ORDER BY Fachrichtung';
}
if ($Filter=="FA") {
$_SESSION['subquery']=' WHERE MitgliederAusland=1';
}
return $_SESSION['subquery'];
}
?>
<?php
$filterarten = array(
"FL"=>"",
"FN"=>"Familienname",
"FP"=>"Postleitzahl",
"FR"=>"Fachrichtung",
"FM"=>"Mitglieder",
"FI"=>"Mitglieder Inland",
"FA"=>"Mitglieder Ausland",
"FE"=>"Ehrenmitglieder",
"FD"=>"Diplomierte"
);
?>
<p>
<form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post" >
<select name="Filter" size="1" onChange="process(hprocess(this.form.Filter.options[this.form.Filter.selectedIndex].value))">
<?php
foreach ($filterarten as $key=>$element) {
echo "<option value=$key>$element</option>";
}
?>
</select>
</p>
</form>
<?php
# nice try...
if ($Filter) {
echo "Es ist folgender Filter gewählt:<br>";
foreach($Filter as $element) {
echo "$element<br>";
}
}
echo "$Filter<br>";
echo "$element<br>";
echo $_SESSION['subquery'];
echo "<a href='option_select.php?filter='".$subquery.">filtertest</a>";
?>
</body>
</html>
Ich hab mir zwei Ansätze vorgenommen, entweder Java oder PHP. Am Ende krieg ich ein bisserl was, wenn ich beides verwende, aber am dicken Ende (Neuaufruf) tut sich gar nichts. Kommentare vorhanden, Frust vorhanden, bitte, bitte.
Danke und noch einen schönen Abend.
Henry