Variablen per 'GET' übergeben ??

Dieses Thema Variablen per 'GET' übergeben ?? im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von noah1, 28. März 2005.

Thema: Variablen per 'GET' übergeben ?? Auf einer Seite der HP an der ich gerade arbeite werden Daten aus einet Tabelle ausgegeben, diese sollen aber nur...

  1. Auf einer Seite der HP an der ich gerade arbeite werden Daten aus einet Tabelle ausgegeben, diese sollen aber nur aus einem bestimmten Monat eines bestimmten Jahres sein - per default immer der aktuelle Monat.
    Das habe ich auch hinbekommen, indem ich im Menü als Link für die Seite
    Code:
    <?php 
    	$amidatum = date(Y-m-d);
    		$dat=split(-,$amidatum);
    	$menue = array(
    			Home => index.php?go=home,
    				...
    			Einsätze => index.php?go=einsaetze&einsatzmonat=$dat[1]&einsatzjahr=$dat[0],
    				...
    				);
    				foreach($menue as $eintrag =>$datei){
    					if ($datei == basename($_SERVER['PHP_SELF'])) {
    						echo <a title=\#\>$eintrag</a>;
    						}
    			else {
    				echo <a href=\$datei\>$eintrag</a>;
    				}
    				}
    				
    				?>
    und im Code für die Ausgabe der Tabellenzellen
    Code:
    ...WHERE jahr='$einsatzjahr' && monat='$einsatzmonat'...
    stehen habe.
    Jetzt möchte ich ganz oben auf der Seite, auf der die Tabelle ausgegeben wird eine Auswahl erstellen, in der der Besucher der Seite den Monat und das Jahr selber wählen kann.
    Das sollte dann ungefär so aussehen:
    Code:
    <?php
    	if ($_REQUEST['monat_jahr'])
    			{
    				includeindex.php?go=einsaetze&einsatzmonat=.$_POST['einsatzmonat1'].&einsatzjahr=$dat[0]'];					
    			}
    	echo<form method=\POST\ name=\monat_jahr\>;
    		echo<select name=\einsmonat\>;
    			echo<option>$einsatzmonat</option>;
    		
    					$einsmonat = array (
    									Januar => 01,
    									Februar => 02,
    									 März => 03,
    									 ...
    									 
    					foreach ($einsmonat as $eintrag1 => $einsatzmonat1)
    				{
    					echo <option>$eintrag1</option>;
    				}			
    					echo</select>   ;
    				
    	if ($dat[0] == 2005)
    			{
    				echo<b>$dat[0]</b>;
    				$einsatzjahr = 2005;
    			}
    				 else if($dat[0] > 2005) 
    			{
    				echo<select name=\einsjahr\>;
    				for($jahr=2005; $jahr <= $dat[0]; $jahr++)
    			{
    				echo<option>$jahr</option>;
    			}
    				echo</select>;
    			}
    	echo  ;
    	echo<input type=\submit\ value=\Auswählen\>;
    	echo</form></div>;
    ?>
    Soweit funktioniert es auch einigermaßen.
    Jetzt würde ich das ganze per->GET' machen, sodaß die Variablen, wenn man sie im Formular ändert in der Adreßleiste übergeben werden, zumal sie sowieso schon wegen dem Link im Menü dort stehen.
    Nur daß ich das ums Verrecken nicht hinbekomme...
    Und dann stehen im Array für die Monate die Monatsnamen, die werden auch übergeben, wie bekomme ich es jetzt aber hin daß z.B. für den Januar nicht der Name, sondern->01' übergeben wird ?
     
  2. OK,

    wenn ich das richtig verstanden habe, musst du als erstes mal die method des Formulars auf GET setzen.

    Für den Monat versuch es mal so:

    Code:
    <?php
    ....
    $einsmonat = array (
      Januar => 01,
      Februar => 02,
      März => 03,
      ...
    );
     
    foreach ($einsmonat as $eintrag1 => $einsatzmonat1) {
      echo <option value=' . $einsatzmonat1 .->>$eintrag1</option>;
    } 
    ....
    ?>
    
    Bitte die SPACE zwischen ' und entfernen, die dienen nur zur besseren Lesbarkeit ;)


    gruss conny
     
  3. 'GET' hatte ich ja schon eingesetzt, aber da schreibt er in der Adreßleiste nicht den vollständigen Link, wie er stehen müßte, um die entsprechenden Daten auszugeben.
    Dort steht dann, z.B. wenn ich den Monat März wähle

    localhost/alsterdorf/index.php?einsatzmonat1=03

    als Link aber müßte dort dann

    localhost/alsterdorf/index.php?go=einsaetze&einsatzmonat=03&einsatzjahr=2005

    stehen, d.h. es fehlt erstens der Link zur Seite (Einsätze) und zweitens die Variable->einsatzjahr'...

    Wenn ich das per POST mach klappt es, aber dann steht ja in der Adreßleite noch der Link vom Aufruf der Seite, und das möchte ich halt dann mit ändern.


    Code:
    <?php
    ....
    $einsmonat = array (
      Januar => 01,
      Februar => 02,
      März => 03,
      ...
    );
     
    foreach ($einsmonat as $eintrag1 => $einsatzmonat1) {
      echo <option value=' . $einsatzmonat1 .->>$eintrag1</option>;
    }
    ....
    ?>
    
    Das klappt übrigens. :D
     
  4. Code:
    <?php
    .....
    echo <form action='der_link_zur_seite' method='GET' name='monat_jahr'>;
    echo <type ='hidden' name='go' value='einsaetze'>;
    .....
    ?>
    
    Und du musst den Variablen gleiche Namen geben, woher soll PHP wissen das du $einsatzjahr meinst, aber:
    Code:
    <?php
    ....
    echo<select name=\einsjahr\>;
    ....
    ?>
    
    schreibst ;) ;D

    gruss conny
     
  5. Ich glaube wir sind auf dem richtigen Weg...
    Du hattest etwas vergessen, guck Dir das mal an:
    Code:
    echo <type ='hidden' name='go' value='einsaetze'>;
    das fällt Dir bestimmt recht schnell beim Ansehen des Codes auf...(ich hab dafür etwas länger gebraucht...)

    Jetzt könntest Du mir aber noch einen Tip geben, wie ich eine Meldung einbaue daß für den ausgewählten Monat in dem Jahr keine Einträge vorliegen...
    Die Datenbankabfrage sieht so aus:
    Code:
    $sql = mysql_query(SELECT * FROM einsaetze WHERE jahr='$einsatzjahr' && monat='$einsatzmonat' order by datum DESC);
    			if (empty($sql)){
    				
    				 echo<div class='einsaetze'><table class='einsaetze'>;
    					 echo<tr>;
    				 echo<td class=\schada\ colspan=\2\>Kein Eintrag vorhanden !</td>;
    				 echo</tr>;
    				 echo</table>;				
    				}
    				
    			else{
    			while ($ds = mysql_fetch_object($sql)){.........
    
    Wenn die Datenbank komplett leer ist kommt ja schon eine Meldung, aber halt auch nur wenn sie komplett leer ist...
     
  6. Das input war nur ein Test ob du auch mitdenkst ;D

    Code:
    <?php
    $sql = mysql_query(SELECT * FROM einsaetze WHERE jahr='$einsatzjahr' && monat='$einsatzmonat' order by datum DESC);
    if (!count($sql)){
      echo ......
    }
    else{
      while ($ds = mysql_fetch_object($sql)){
        ......
      }
    }
    ?>
    
    oder

    Code:
    <?php
    $sql = mysql_query(SELECT * FROM einsaetze WHERE jahr='$einsatzjahr' && monat='$einsatzmonat' order by datum DESC);
    $i = 0;
    while ($ds = mysql_fetch_object($sql)){
      ++$i;
      .........
    }
    if($i == 0) {
      echo ..........
    }
    ?>
    
    Da könnte ich dir noch ca. 3545454 Möglichkeiten nennen wie du das machen kannst.

    gruss conny
     
  7. Nicht nötig, die zweite klappt ganz gut...
     
Die Seite wird geladen...

Variablen per 'GET' übergeben ?? - Ähnliche Themen

Forum Datum
Kann System-umgebungsvariablen nicht ändern Windows XP Forum 1. Dez. 2011
Problem mit Umgebungsvariablen Windows XP Forum 7. Sep. 2011
Abfrage der vorhandenen Windows-Systemevariablen Webentwicklung, Hosting & Programmierung 28. Juni 2011
PHP - Wert mit Variablen ersetzen in exec() Windows XP Forum 17. Feb. 2011
VBS-Textdatei zeilenweise auslesen und Variablen belegen Windows XP Forum 10. Juni 2010