php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.06.2008, 17:57  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard filterauswahl bleibt nicht erhalten

HAllo! ich habe folgendes Problem

Es wird eine Tabelle mit einer menge von Daten angezeigt. Diese Tabelle hat eine Auwahlfuntion mit Checkboxen an der jeweiligen Zeile. Nun ist es möglich mittels eines Links welcher eine get-Variable übergibt alle Elemente anwählt bzw. ein Link der alle Elemente abwählt. Nun habe ich aber eine Filterfunktion eingebaut. Das heißt ein eingabefeld in dem ich dann ein Text eingebe z.B. KFZ und schon werden mir nur Einträge mit dem kürzel kfz angegeben. Nun kommt es zum Problem. Wenn ich nun den Link anwähle "alles auswählen" wird nicht die ausgebene tabelle mit kfz ausgewählt sondern die komplette Tabelle (ungefiltert). Nun habe ich bis jetzt noch keine idee wie ich das bewerkstellige das ich die gefilterte tabelle "anwählen kann". Hat jemand ein Tipp!

Gruß niesel
hier ein paar zeilen code:
PHP-Code:
<?
//SQL anfragen (wenn filtertext eingeben worden ist und der filterbutton gewählt worden ist)
if (sizeof($filtertext)>&& $filter     )
        {
            
            switch(
$sort
            {
                case 
"id"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId AND Berufsbez LIKE $filtertext ORDER BY BerufId";
                break;    
                case 
"bez"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId ORDER BY Berufsbez";
                break;
                case 
"branch"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId ORDER BY Branchenname";
                break;         
                default: 
$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId AND Berufsbez LIKE \"%$filtertext%\"";        
               }
        }    
        else {
        switch(
$sort
        {
            case 
"id"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId ORDER BY BerufId";
            break;    
            case 
"bez"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId ORDER BY Berufsbez";
            break;
            case 
"branch"$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId ORDER BY Branchenname";
            break;         
            default: 
$SQL="SELECT DISTINCT BerufId, Berufsbez, Branchenname FROM alleBerufe, Branche WHERE BranchberufId=BranchenId";        
        }
        }
        
$ResultPointer=$db->query($SQL);
         if (!
$ResultPointer) {echo mysql_error();}
//tabellenausgabe
         
echo '

<table border="0" width="550px" cellpadding="0" cellspacing="2" class="tableborder">'
;
         echo 
'<tr>';
         echo 
'<td class="tdborder2">[b]Auswahl[/b]</td>';
         echo 
'<td class="tdborder2">[b][url="berufverw.php?sort=id&getall='.$getall.'"]Berufid[/url][/b]</td>';
         
         echo 
'<td class="tdborder2">[b]<a class="tbllink" href="berufverw.php?sort=bez&getall='.$getall.'">Berufsbezeichnung[/b]</td>';    
         echo 
'<td class="tdborder2">[b]<a class="tbllink" href="berufverw.php?sort=branch&getall='.$getall.'">Branche[/b]</td>';
                         
         for(
$i=0$i<mysql_num_rows($ResultPointer); $i++)
         {
             
$Result=$db->data_object();
        
        
            
$tbl='<tr>';
            
$tbl .='<td class="tdborder1">';
            
$tbl .='<input type="checkbox" ';
            
$tbl .='name="check[]" ';
            
$tbl .='value="';
            
$tbl .=$Result->BerufId;
            
$tbl .='"';
            
$checked is_array($check) && in_array($Result->BerufId$check)|| is_array($check)&&($getall) ? ' checked="checked"' ""
            
$tbl .= $checked.'/>';
            
$tbl .='</td>';
            
$tbl .='<td class="tdborder1">';
            
$tbl .= $Result->BerufId;
            
$tbl .= ' </td>';
            
$tbl .=  '<td class="tdborder1">';
              
$tbl .=  $Result->Berufsbez;
            
$tbl .=  ' </td>';
            
$tbl .=    '<td class="tdborder1">';
              
$tbl .= $Result->Branchenname;
            
$tbl .= ' </td>';
           
                               
            
$tbl .=' </tr>';
            
            echo 
$tbl;
             
         }
          echo 
'</table></p>
'

....
//Auwahllink


[url="<?"]>alles ausw&auml;hlen[/url]
                         [
url="<?"]>alles abw&auml;hlen[/url]
....
//Filterformularelemente
 
<input type="text" name="filtertext"/>
                      <
input type="submit" name="filtersub" value="Suchen"/>
?>
nieselfriem ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.06.2008, 10:23  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

  • Input-Felder gehören in ein Formular
  • error_reportimg(E_ALL) einschalten
  • wenn du die Seite über Links aufrufst, sind alle andern Parameter natürlich nicht gesetzt
  • register_globals sind bei dir on?
  • benutze Radio-Fields zur Wahl von Sortierung und Auswahl
Das könnte dann etwa so aussehen (eine anständige Formatierung ist gratis dabei):
PHP-Code:
<?
error_reporting
(E_ALL); 
if (isset(
$_POST['filtertext'])){
    
$filtertext $_POST['filtertext'];
}
$ausw = !empty($_POST['auswahl']) ? intval($_POST['auswahl']) : 1// Default; alles
$sort = !empty($_POST['sort']) ? $_POST['sort'] : '';
switch(
$ausw){
    case 
2:
        
$filter " WHERE Berufsbez LIKE '%$filtertext%'";
        break;
    case 
3:
        
$filter " WHERE BerufId in (" implode(', '$_POST['check']) . ")";
        break;
    default:
        
$filter '';
}
switch(
$sort) { 
    case 
"id"
        
$order " ORDER BY BerufId"
        break;     
    case 
"bez"
        
$order " ORDER BY Berufsbez"
        break;     
    case 
"branch"
        
$order " ORDER BY Branchenname"
        break;           
    default: 
        
$order '';         

$SQL "
    SELECT DISTINCT 
        BerufId, 
        Berufsbez, 
        Branchenname 
    FROM 
        alleBerufe
    INNER JOIN
        Branche ON BranchberufId = BranchenId
    $filter
    $order"
;

//echo "
$SQL
";        // Testausgabe
$ResultPointer = $db->query($SQL); 
if (!$ResultPointer) {
    echo mysql_error();
}
$anz = mysql_num_rows($ResultPointer);

//tabellenausgabe 
echo "


        
<form action='" . $_SERVER['PHP_SELF'] . "' method='post'>
        <
table border='0' width='550px' cellpadding='0' cellspacing='2' class='tableborder'>
            <
tr>
            <
td class='tdborder2'>[b]Sortierung[/b]</td>
            <
td class='tdborder2'>[b]<input type='radio' name='sort' value='id'>Berufid</a>[/b]</td>
            <
td class='tdborder2'>[b]<input type='radio' name='sort' value='bez'>Berufsbezeichnung[/b]</td>
            <
td class='tdborder2'>[b]<input type='radio' name='sort' value='branch'>Branche[/b]</td>
            </
tr>";
                          
while($Result = $db->data_object()){ 
    $tbl="
<tr
          <
td class='tdborder1'
            <
input type='checkbox' name='check[]' value='$Result->BerufId)'" .
            is_array($check) && in_array($Result->BerufId, $check) || is_array($check) && ($getall) ? " 
checked='checked'" : '' . " /> 
          </
td>    
          <
td class='tdborder1'>$Result->BerufId; </td>
          <
td class='tdborder1'>$Result->Berufsbez</td>
          <
td class='tdborder1'>$Result->Branchenname/td>
          </
tr>";            
    echo $tbl; 

echo "    
</table>
      </
p>
      
"; 
// .....
//Auwahllink 
echo "
<table border='0' width='550px' cellpadding='0' cellspacing='2' class='tableborder'>
            <
tr>
            <
td>Auswahl</td>
            <
td><input type='radio' name='auswahl' value='1'>alles</a></td>
              <
td><input type='radio' name='auswahl' value='2'>Filter</a></td>";
if ($anz > 0){
    echo "
<td><input type='radio' name='auswahl' value='3'>Gewählte Zeilen</a></td>n";
}
    else{
    echo "
<td></td>n";
}
echo "
</tr>n";
//.... 
//Filterformularelemente 
echo "
<tr><td>Suchbegriff</td><td colspan='4'><input name='filtertext' /></td></tr
      <
tr><td colspan='5'><input type='submit' name='filtersub' value='Suchen' /></td></tr>n</table>n
    
</form>n"; 
?>
__________________
Gruss
L
lazydog ist offline  
Alt 18.06.2008, 13:41  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1.Input-Felder gehören in ein Formular. DIe sind in einem Formular, habe ich nur nicht im Quelltextauszug
2. register_globals sind bei dir on?. Nein ich mach alles schön mit $_POST[''];
aber danke der nachfrage
3. benutze Radio-Fields zur Wahl von Sortierung und Auswahl wußte ich noch nicht wie es geht. Scheint wohl die bessre varante zu sein

Danke und gruß

niesel
nieselfriem 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zeilenumbrüche bei aus datei gelesenem text erhalten Crypi PHP Tipps 2008 6 03.06.2008 16:57
GD: Transparenz erhalten Zergling-new PHP Tipps 2007 2 12.06.2007 10:53
SQL Code um Spaltennamen zu erhalten Plague Datenbanken 3 26.04.2006 14:57
[Erledigt] Zeilenumbruch bleibt erhalten - trotz entfernen? PHP Tipps 2005-2 3 16.10.2005 02:22
Wert des Radiobuttons nach Reload erhalten tikal PHP Tipps 2005-2 2 05.09.2005 16:18
Daten im Formular sollen erhalten bleiben 'progman' PHP Tipps 2005-2 11 02.09.2005 14:53
Variable über GET erhalten? PHP Tipps 2005-2 3 15.07.2005 18:04
zurück zu Seite per hyperlink und Daten erhalten nieselfriem PHP Tipps 2005-2 8 15.06.2005 00:05
Spaltenüberschrift beim Scrollen erhalten PHP Tipps 2005 2 17.05.2005 16:44
0 soll erhalten bleiben Connar PHP Tipps 2005 6 11.04.2005 12:06
Kann man Textformatierung erhalten? PHP Tipps 2005 3 29.03.2005 13:09
[Erledigt] SQLITE - Zufallswert erhalten PHP-Fortgeschrittene 1 16.10.2004 17:32
Input Tag Werte erhalten bei Link klick PHP-Fortgeschrittene 8 13.10.2004 11:09
Zufallszahl mit PHP 4.3.x zuverlässig erhalten PHP Tipps 2004 3 07.10.2004 14:32
inner join Datenbanken 12 23.09.2004 13:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 19: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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.