PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Blätterfunktion $_GET geht verloren (http://www.selfphp.de/forum/showthread.php?t=10350)

Tikiwiki 26.04.2005 15:32:33

Blätterfunktion $_GET geht verloren
 
Hallo zusammen,

stehe wieder einmal vor einem Problem. Habe bereits folgenden modifizieren Code (Original von einem Kelvin - vblib).
Zum besseren Verständnis folgendes Szenario: Wenn eine Kategorie ausgewählt wird sollen nur die Datensätze der Kategorie gefiltert werden.
Darum übergebe ich die katid per $_GET. Dies funktioniert auch. Aber lediglich auf der 1. Seite. Wenn ich nun die 2. Seite anklicke ist die $_GET leer. Die Seitenanzahl stimmt, da er ja das erste Mal die $_GET richtig bekommt.

Wo muss ich ansetzen damit die katid bei allen Seiten gültig ist?

Ich hätte noch eine weitere Frage da es diesen Code betrifft und eigentlich nicht schlau daraus werde:
Was bedeutet das ? 1 : 0 ????

Tja und hier der Code:

PHP-Code:

<?php
error_reporting
(E_ALL);
require_once 
"C:/Inetpub/wwwroot/docsportal/templates/1043/templates/vlibTemplate.php";
include 
"config.inc.php";

$rows_per_page 20;
$tmpl = new vlibTemplate('C:/Inetpub/wwwroot/doku/start.html');

if (empty(
$_GET['page'])  || !is_numeric($_GET['page']))
{
    
$_GET['page'] = 1;
}

$select_count "SELECT COUNT(*) FROM $tabelleDateien WHERE fkatid = 
                 $_GET[katid]"
;
$num_result mysql_query($select_count);
$num_results mysql_result($num_result0);

if ((((
$_GET['page']-1) * $rows_per_page)+1) > $num_results
     
$_GET['page'] = ceil($num_results $rows_per_page);

$num_pages ceil($num_results $rows_per_page);
$limit_start = ($rows_per_page * ($_GET['page']-1));
$limit_stop $rows_per_page;

$rskategorie mysql_query("SELECT kategoriename, katid FROM $tabelleKategorie 
ORDER BY kategoriename"
);
$sqldateien "SELECT daid, dateiname, fkatid FROM $tabelleDateien WHERE 
fkatid = $_GET[katid] LIMIT $limit_start, $limit_stop"
;

$result mysql_query($sqldateien) or die (mysql_error() . " -- " $sqldateien);

$tmpl->newLoop('pages');
for (
$page 1$page <= $num_pages$page++)
{
    
$tmpl->addRow(array(
        
'page' => $page,
        
'is_current' => ($page == $_GET['page']) ? 0
        
)
    );
}
$tmpl->addLoop();

$tmpl->newLoop('dokuliste_loop');
while (
$row mysql_fetch_assoc($result))
{
    
$tmpl->addRow($row);
}

$tmpl->addLoop();
$tmpl->setdbloop('kategorie_loop'$rskategorie);
$tmpl->pparse();

?>

Danke
Dietmar

xabbuh 26.04.2005 15:41:55

AW: Blätterfunktion $_GET geht verloren
 
Zitat:

Zitat von Tikiwiki
Aber lediglich auf der 1. Seite. Wenn ich nun die 2. Seite anklicke ist die $_GET leer. Die Seitenanzahl stimmt, da er ja das erste Mal die $_GET richtig bekommt.

Wie werden denn die Links zur zweiten Seite zusammengebaut? Das lässt sich aus deinem Codeteil leider nicht entnehmen.

Zitat:

Zitat von Tikiwiki
Ich hätte noch eine weitere Frage da es diesen Code betrifft und eigentlich nicht schlau daraus werde:
Was bedeutet das ? 1 : 0 ????

Schau mal hier:
- http://www.php.net/manual/de/language.expressions.php
- http://selfphp.info/tipps_tricks/pro...rzschreibw.php

Tikiwiki 26.04.2005 16:09:56

AW: Blätterfunktion $_GET geht verloren
 
Hallo xabbuh,

erstmal danke für die Antwort und Links (werde das ganze mal in Ruhe durchlesen).

Zu Deiner Frage. Hoffe ich habe das ganze auch verstanden und kann Dir eine ausreichende Antwort liefern.

Erweitern wir den Code um folgende Zeilen. Hier wird ein Standardwert vorgegeben.

PHP-Code:

if (empty($_GET['katid']))
{
    
$_GET['katid'] = 43;




Im Template wird dies dann so zusammengebaut.
HTML-Code:

<p><tmpl_loop name="pages">
        <tmpl_if name="is_current">
                | <strong>{tmpl_var name='page'}</strong> |
        <tmpl_else />
                |<a href="?page={tmpl_var name='page'}">{tmpl_var name='page'}</a> |
        </tmpl_if>
</tmpl_loop></p>

So das wären alle Informationen die ich habe und wenn ich dies so schreibe bekomme ich Zweifel, ob ich die ganze Thematik und Zusammenspiel eigentlich verstanden habe.

Nochmals danke für die Hilfestellung und für die Links.
Dietmar

xabbuh 26.04.2005 16:27:31

AW: Blätterfunktion $_GET geht verloren
 
Zitat:

Zitat von Tikiwiki
HTML-Code:

<a href="?page={tmpl_var name='page'}">{tmpl_var name='page'}</a>

An dieser Stelle musst du die Kategorie auch mit übergeben, da sonst deren Wert verloren geht.

Tikiwiki 27.04.2005 10:28:33

AW: Blätterfunktion $_GET geht verloren
 
Hi nochmals,

danke für den Tip. Hatte dieses schon mal probiert. Wollte nur nochmal sicher gehen. Funktioniert leider nicht. Auch wenn ich diesen dranhänge wird der Wert nicht übernommen. Wie schon gesagt. Das erste Mal funktioniert es und dann ist Schluß.
Naja werde bei dieser Sache am Ball bleiben. Bin aber trotzdem für eventuell weitere Hinweise dankbar.

LG
Dietmar

xabbuh 27.04.2005 10:36:44

AW: Blätterfunktion $_GET geht verloren
 
Wie sieht die URL denn aus, wenn du auf einen Link zu einer weiteren Seite klickst und wie sieht dein Quelltext aus, wenn du versuchst, die Kategorie mit zu übergeben.

Tikiwiki 27.04.2005 11:16:56

AW: Blätterfunktion $_GET geht verloren
 
Hi,

hier noch die Informationen.
Url (gekürzte Fassung) wenn ich auf eine weitere Seitenzahl klicke

start.php?page=2

Wenn ich die Kategorie dranhänge:

start.php?page=2&kat=

Hoffe dies hilft.

Nur so eine Idee und Zusatzinfo: Beim ersten Aufruf der start.php gibt es noch keine $_GET[katid]. Drum mal das empty und es wird eine Kategorie vorbelegt.
2. Schritt: Es wird eine Kategorie ausgewählt. So nun hat die $_GET[katid] einen Wert und die SQL werden mit den zuvor ausgewählten Wert befüllt. Die Seitenzahl werden ja richtig angezeigt und die Daten der ersten Seite.
Wenn ich nun Seite 2 anklicke weis er nichts mehr von der $_GET{katid].
Irgendwie habe ich den Eindruck im Array fehlt die Info der katid. Aber dies muss ich noch probieren.
Was hältst Du von diesem Eindruck?

LG
Dietmar

|Coding 27.04.2005 11:43:53

AW: Blätterfunktion $_GET geht verloren
 
Haengst Du denn auch die richtige Variable an?
Gibt es die Variable eigentlich?
Musst Du im Templatesystem erst die Bedingungen schaffen, damit es die Variablen Ordnungsgemaeß parsed?

Tikiwiki 28.04.2005 15:09:40

AW: Blätterfunktion $_GET geht verloren
 
Hi Coding,

ehrlich gesagt verursacht Deine Antwort sagen wir mal schlaflose Nächte.

Zu Deinen Fragen:

Zitat:

Haengst Du denn auch die richtige Variable an?
ja
Zitat:

Gibt es die Variable eigentlich?
ja
Zitat:

Musst Du im Templatesystem erst die Bedingungen schaffen, damit es die Variablen Ordnungsgemaeß parsed?
und da denke ich mal liegt der Punkt. Wie ich das nun mache weis ich zu diesem Zeitpunkt nicht (da fehlt klip und klar noch das Wissen).

Fazit für mich: Lesen ... Lesen und nochmals Lesen und auch probieren.

Falls jemand zu diesem Beitrag noch eine zündende Idee einfällt oder auffällt .... Herzlich Willkommen.

Danke auf jeden Fall für die bisherigen Antworten.

Schönen Tag Euch allen
Dietmar

xabbuh 28.04.2005 21:07:21

AW: Blätterfunktion $_GET geht verloren
 
Zitat:

Zitat von Tikiwiki
und da denke ich mal liegt der Punkt. Wie ich das nun mache weis ich zu diesem Zeitpunkt nicht (da fehlt klip und klar noch das Wissen).

Du wirst wohl eine ähnliche Anweisung wie das newLoop() bzw. addRows() für Arrays nur eben für Variablen benutzen müssen. Wie diese Anweisung genau aussieht, sollte in der Dokumentation zu deinem Template System stehen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:59:10 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.