php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.12.2008, 18:11  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 16
derneue2008 befindet sich auf einem aufstrebenden Ast
Standard PHP auswahlbegrenzung

hallo Leute,

ich habe wieder eine Frage, ich habe das Problem mit der Filterfunktion bei 2 Tabelle, bei erste Auswahl wähle ich zum beispiel ein CC 01, dann zeig er mir bei 2. Auswahl nur noch Einrichtungen von CC01, das funktioniert, weil Einrichtung und CC in eine Tabelle drin ist, und jetzt möchte ich genauso weiter machen mit wenn ich Einrichtung ausgewählt habe, muss er wieder dieser Arbeitsbereich eingrenzen, aber tut er nicht, ich habe mit dieses vergleichsfunktion $_Post verwendet, aber hier geht es nicht da Arbeisbereich in eine andere Tabelle drin ist, ich habe alles ausprobiert aber es klappt nicht, bitte helf mir.

danke euch im Voraus.

derneue

PHP-Code:
 <?php
include("dbconnect.php");
error_reporting(E_ALL); // debug
ini_set('display_errors'true);
?> 
  <script type="text/javascript">
function submitForm() {
  var form = document.getElementsByName('form')[0];
  form.submit();
}
</script>
    <form name="form" id="form" method="post" action="formularA.php">
 
             <select name="select_centren" id="select_centren" onchange="submitForm()">
                <option value="" selected="selected">w&auml;hlen</option>
                <?php
        $abfrageStgr 
"SELECT DISTINCT CC
                        FROM campies
                        ORDER by CC ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
        
$ergebnisStgr mysql_query($abfrageStgr);
          while(
$rows=mysql_fetch_array($ergebnisStgr))
         {
         
?>
          <option value="<?php echo $rows["CC"];
          
?>"><?php echo $rows["CC"];
          
?></option><?
          
}
?>
            </select>
 
             <select name="select_einrichtung" id="select_einrichtung" onchange="submitForm()">
             <option value="" selected="selected">w&auml;hlen</option>
<?php
if( isset( $_POST['select_centren'] ) ) {
        
$abfrageStgr1 "SELECT DISTINCT einrichtung
                        FROM campies
      WHERE cc = '"
$_POST['select_centren']."'
                        ORDER by einrichtung ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
        
$ergebnisStgr1 mysql_query($abfrageStgr1);
          while(
$rows=mysql_fetch_array($ergebnisStgr1))
         {
         
?>
          <option value="<?php echo $rows["einrichtung"];
          
?>"><?php echo $rows["einrichtung"];
          
?></option><?
          
}
 
 
// Datenbank hier
}
?>
</select>
 <select name="select_arbeitsbereich" id="select_arbeitsbereich" onchange="submitForm()">
 <option value="" selected="selected">w&auml;hlen</option>
 <?php
if( isset( $_POST['select_einrichtung'] ) ) {
        
$abfrageStgr1 "SELECT DISTINCT arbeitsbereich
                        FROM lab_inst, campies
      WHERE einrichtung = '"
$_POST['select_einrichtung']."'
                        ORDER by arbeitsbereich ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
        
$ergebnisStgr1 mysql_query($abfrageStgr1);
          while(
$rows=mysql_fetch_array($ergebnisStgr1))
         {
         
?>
          <option value="<?php echo $rows["arbeitsbereich"];
          
?>"><?php echo $rows["arbeitsbereich"];
          
?></option><?
          
}
 
 
// Datenbank hier
}
?>
 
</form>
ImageShack - Image Hosting :: auswahlus1.jpg so sieht es aus, aber bei 2. auswahl funktioniert es nicht mehr weiter

Geändert von derneue2008 (06.12.2008 um 18:16 Uhr).
derneue2008 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.12.2008, 18:19  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Aus den ersten beiden Abfrage entnehme ich, dass campies mindestens so aussieht
Code:
CREATE TABLE campies (
  cc ...,
  einrichtung ...
)
Wie sieht lab_inst aus? Und wie hängen die beiden Tabellen zusammen?
David ist offline  
Alt 06.12.2008, 18:25  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 16
derneue2008 befindet sich auf einem aufstrebenden Ast
Standard

hallo David,

anbei ein BildLink:

http://img386.imageshack.us/img386/8968/campieqb5.jpg

also ist campies_Nr haben die gleichen id

gruß

derneue

ps. danke dir im Voraus
derneue2008 ist offline  
Alt 06.12.2008, 18:40  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und ist campies.einrichtung eindeutig oder erst die Kombination cc+einrichtung?
David ist offline  
Alt 06.12.2008, 18:43  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 16
derneue2008 befindet sich auf einem aufstrebenden Ast
Standard

erst die kombination cc + einrichtung, deshalb weiss ich nicht wie man dieser code schreibt =o(

also muss einrichtung nur aus der davorrige ausgewählt sein, und irgendwie in kombination mit cc, sodass die phpmaschine es weisst


PHP-Code:
if( isset( $_POST['select_einrichtung'] ) ) {
        
$abfrageStgr1 "SELECT DISTINCT arbeitsbereich
                        FROM lab_inst, campies
      WHERE einrichtung = '"
$_POST['select_einrichtung']."'
                        ORDER by arbeitsbereich ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
        
$ergebnisStgr1 mysql_query($abfrageStgr1);
          while(
$rows=mysql_fetch_array($ergebnisStgr1)) 
hier in dieser teil muss was geändert werden, aber ich weiss nicht wie

Geändert von derneue2008 (06.12.2008 um 18:50 Uhr).
derneue2008 ist offline  
Alt 06.12.2008, 18:53  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann fangen wir mal an... (mal sehen wie lange es dauert )

Jedes Mal, wenn das Formular abgeschickt wird (ob durch den submit-Button oder durch javascript-submit(), egal) sendet der Browser alle benannten, gültigen Elemente des Formulars als Name=Wert Paare an den Webserver. Daraus, und nur daraus, baut PHP für diesen Durchlauf des Skripts das Feld _POST zusammen.
Durch
Zitat:
<option value="" selected="selected">w&auml;hlen</option>
sorgst Du dafür, dass bei jedem Durchlauf die "leere" Option als default ausgewählt wird. Wird das Formular erneut abgeschickt, ohne dass der Benutzer erneut den Wert auswählt, wird also ein leerer Parameter übermittelt und PHP baut daraus aus leere Zeichenkette in _POST zusammen.

Das musst Du erstmal ändern, bevor Du das Skript weiterbauen kannst.
Wenn also $_POST['select_centren'] gesetzt ist, musst Du schon in der ersten while-Schleife überprüfen, ob $rows["CC"]===$_POST['select_centren'] ist. Und wenn das der Fall ist, genau dieses <option> Element mit selected="selected" versehen. Genauso dann mit $rows["einrichtung"] in der nächsten while-Schleife.
David ist offline  
Alt 06.12.2008, 18:57  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 16
derneue2008 befindet sich auf einem aufstrebenden Ast
Standard

genau, das problem wollte ich auch noch lösen, aber jetzt ist es egal, hauptsache die innere filterfunktion funktioniert =o) aber es funktioniert jetzt noch nicht, wenn ich jetzt bei CC auswähle, filtert er gleich alles was bei Einrichtung aus die in z.b. CC01 sind, und weiter macht er nicht, weil Arbeitsbereich in der 2. Tabelle drin ist und ich nicht weisst wie man bei sqlabfrage so schreibt damit er weiter eingrenzt und nur das zeigt was in arbeitsbereich xy von einrichtung drin ist, so schwer für mich das ganze zeug, aber ich muss irgendwie schaffen, mit deine/eure hilfe

gruß

derneue
derneue2008 ist offline  
Alt 06.12.2008, 19:01  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Nein, es ist nicht egal. Die "innere filterfunktion" wird so nicht funktionieren, bis Du dieses Problem nicht gelöst hast.
Ich weiß, sehen heißt glauben ...also soll PHP es Dir zeigen
PHP-Code:
include("dbconnect.php");
error_reporting(E_ALL); // debug
ini_set('display_errors'true);

echo 
'<pre> Und so sieht _POST jetzt aus: 'var_dump($_POST); echo "</pre>\n"flush(); 
David ist offline  
Alt 06.12.2008, 19:11  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 16
derneue2008 befindet sich auf einem aufstrebenden Ast
Standard

hm, und wieso funktioniert es dann bei erste auswahl obwohl es dann wieder auf wählen erscheint?

bin echt noob ey
derneue2008 ist offline  
Alt 06.12.2008, 19:49  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann war das vielleicht nicht "sehen" genug.

Genau Dein Skript mit ein paar echo-Ausgaben mehr:
PHP-Code:
<?php
include("dbconnect.php");
error_reporting(E_ALL); // debug
ini_set('display_errors'true);

echo 
'<pre>_POST:'var_dump($_POST); echo "\nZeit:"date('H:i:s');"</pre>\n";

?>
<script type="text/javascript">
    function submitForm() {
        var form = document.getElementsByName('form')[0];
        form.submit();
    }
</script>
<form name="form" id="form" method="post" action="formularA.php">

    <select name="select_centren" id="select_centren" onchange="submitForm()">
        <option value="" selected="selected">w&auml;hlen</option>
        <?php
        $abfrageStgr 
"SELECT DISTINCT CC
        FROM campies
        ORDER by CC ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
        
$ergebnisStgr mysql_query($abfrageStgr);
        while(
$rows=mysql_fetch_array($ergebnisStgr))
        {
            
?>
            <option value="<?php echo $rows["CC"];
                
?>"><?php echo $rows["CC"];
                
?></option><?
            
}
            
?>
        </select>
        
        echo '<div>Debug: select_centren="', isset( $_POST['select_centren'] ) ? $_POST['select_centren'] : '--nicht vorhanden--', '"</div>';
        
        <select name="select_einrichtung" id="select_einrichtung" onchange="submitForm()">
            <option value="" selected="selected">w&auml;hlen</option>
            <?php
            
if( isset( $_POST['select_centren'] ) ) {
                
$abfrageStgr1 "SELECT DISTINCT einrichtung
                FROM campies
                WHERE cc = '"
$_POST['select_centren']."'
                ORDER by einrichtung ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
                
$ergebnisStgr1 mysql_query($abfrageStgr1);
                while(
$rows=mysql_fetch_array($ergebnisStgr1))
                {
                    
?>
                    <option value="<?php echo $rows["einrichtung"];
                        
?>"><?php echo $rows["einrichtung"];
                        
?></option><?
                    
}

                    
// Datenbank hier
                
}
                
?>
            </select>
            echo '<div>Debug: select_einrichtung="', isset( $_POST['select_einrichtung'] ) ? $_POST['select_einrichtung'] : '--nicht vorhanden--', '"</div>';
            <select name="select_arbeitsbereich" id="select_arbeitsbereich" onchange="submitForm()">
                <option value="" selected="selected">w&auml;hlen</option>
                <?php
                
if( isset( $_POST['select_einrichtung'] ) ) {
                    
$abfrageStgr1 "SELECT DISTINCT arbeitsbereich
                    FROM lab_inst, campies
                    WHERE einrichtung = '"
$_POST['select_einrichtung']."'
                    ORDER by arbeitsbereich ASC"
;  //F?llen der Drop-Down-Auswahl Standorte
                    
$ergebnisStgr1 mysql_query($abfrageStgr1);
                    while(
$rows=mysql_fetch_array($ergebnisStgr1))
                    {
                        
?>
                        <option value="<?php echo $rows["arbeitsbereich"];
                            
?>"><?php echo $rows["arbeitsbereich"];
                            
?></option><?
                        
}

                        
// Datenbank hier
                    
}
                    
?>

                </form>
<?php
echo '<div>Debug: Skript Ende 'date('H:i:s'), "</div>\n";
Schau Dir die Ausgaben mal bei jedem Schritt genau an. Dieses Skript wird immer von oben nach unten vollständig durchlaufen - Schritt für Schritt. D.h. wenn Du die Ausgabe
Zitat:
Debug: select_centren="--nicht vorhanden--"
erhälst, wird auch das isset() danach false liefern. Wenn Du die Ausgabe
Zitat:
Debug: select_centren=""
erhälst wird das darauf folgende isset() true liefern, aber es handelt sich um eine leere Zeichenkette (leer ist nicht gleich nicht vorhanden).
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
arbeitsbereich php

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum