Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Nach absenden anzeigen“

Smax

Aktives Mitglied

Hallo,

ich habe eine Frage und zwar zu meinem bisherigen "Werk".
Test Calculator
Wie erreiche ich es dass die Tabelle Ergebnis der Berechnung erst dann zum Vorschein kommt wenn der User eine Berechnung durchgeführt hat also auf Preis berechnen geklickt hat?
Ist das mit php überhaupt möglich?
Bin php-Anfänger und kenn mich deshalb noch nicht wirklich damit aus...

Vll. kann mir der ein oder andere helfen?
 

Duddle

Posting-Frequenz: 14µHz

AW: Nach absenden anzeigen

Du wertest deine Übergabeparameter aus und überprüfst, ob sie überhaupt gesetzt sind. Da diese beim "Kaltstart" der Seite nicht belegt sind, kannst du das entsprechend abfragen und agieren:
PHP:
if(isset($_GET['foobar']) echo "Ergebnistabelle";


Duddle
 

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Ja ok was is denn dieses foobar?Ist das ein Platzhalter?
Was muss ich denn dann für den einsetzen?
Meinst du dann so:
PHP:
<?php
			if(isset($_GET['foobar']))
			{
			echo '<table>
				<tr><td colspan="2">Ergebnis der Berechnung:</td></tr>
				<tr><td colspan="2">';
						echo '<b>Preis für '.$_GET['beds']; if($beds == 1){echo ' Person';}else{echo ' Personen';}
						echo ' vom '.$_GET['beginDay'].'.'.$_GET['beginMonth'].'.'.$_GET['beginYear'].' bis '
						.$_GET['endDay'].'.'.$_GET['endMonth'].'.'.$_GET['endYear'].':</b>';
			echo '</td></tr>
				<tr><td>Übernachtungspreis (inkl. Zu-/Abschläge)</td><td></td></tr>
				<tr><td><b>Gesamtpreis:</b></td><td></td></tr>
			</table>';
			}
?>
 
Zuletzt bearbeitet:

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Ah ich habs, ich denke da recht es aus wenn ich prüfe ob z.b. ein Feld des forms gesetzt ist oder?
Jetzt aber noch ne andere Frage und zwar wie kann ich jetzt wieder reset machen also dass die daten von der url wieder "abgehängt" werden?

Ach ja und wenn ich im form bei action wieder die seite aufrufe wie kann ich da erreichen dass die eingegebenen daten bzw. ausgewählten felder erhalten bleiben und nur gelöscht werden wenn man reset drückt?
 
Zuletzt bearbeitet:

Top_Gun

Aktives Mitglied

AW: Nach absenden anzeigen

Ah ich habs, ich denke da recht es aus wenn ich prüfe ob z.b. ein Feld des forms gesetzt ist oder?
Jap, aber das hast du ja schon umgesetzt...

Jetzt aber noch ne andere Frage und zwar wie kann ich jetzt wieder reset machen also dass die daten von der url wieder "abgehängt" werden?
Um die Ergebnistabelle gleichzeitig auszublenden, solltest du für den "Zurücksetzen"-Button eine eigene Form machen mit action auf index.php. Das lädt die Seite neu, das Formular wird auf den Standard gesetzt und die Ergebnistabelle ausgeblendet...

Ach ja und wenn ich im form bei action wieder die seite aufrufe wie kann ich da erreichen dass die eingegebenen daten bzw. ausgewählten felder erhalten bleiben und nur gelöscht werden wenn man reset drückt?
Du übergibst zur Berechnung die eingegebenen Daten ja sowieso, mit diesen kannst du Abfragen welche Daten in dem Formular ausgewählt werden sollen.
Also ungefähr so:
PHP:
if("übergebene variable für den tag" == 10) { echo selected }
das ganze natürlich noch an die richtige Stelle setzen...
 

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

@Top_Gun:

Danke erst mal für deine Hilfe, ich glaub ich weiß was du meinst nur irgendwie hat das mit dem neuen From und da den reset rein bzw. mit dem als selected speichern nicht so geklappt bzw. ich habs falsch gemacht...
Wo muss denn das hin?
 

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Ok bisschen länger:
PHP:
		<form action="index.php" method="get">
			<table>
				<tr><td colspan="2">
				<h2>Preis genau berechnen</h2>
				<p>Bitte geben Sie im unten stehendem Formular ihr Anreise- und Abreisedatum ein und wählen
				Sie die Anzahl der anreisenden Personen aus.<br/>
				Eine Buchung einer 2 Personen Ferienwohnung für eine Person ist nur zum Normalpreis möglich.</p></td></tr>
				<tr><td colspan="2">
					<?php
						echo 'Ist das Objekt belegt?';
					?>
				</td></tr>
				<tr><td>Datum der Anreise:</td><td>
					<select name="beginDay">
						<?php
							$tag = date('d');
							$nr = "\n";
							
							for($i=1;$i<=31;$i++) {
								if($i <= 9) {
									$value[$i] = '0'.$i;
								} else {
									$value[$i] = $i;
								}
							
								if($value[$i] == $tag) {
									$selected[$i] = ' selected';
								} else {
									$selected[$i] = '';
								}
								
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>			
					</select>
					<select name="beginMonth">
							<?php
								$monat = date('m');
								$nr = "\n";
								$monat_name['01'] = 'Januar';
								$monat_name['02'] = 'Februar';
								$monat_name['03'] = 'März';
								$monat_name['04'] = 'April';
								$monat_name['05'] = 'Mai';
								$monat_name['06'] = 'Juni';
								$monat_name['07'] = 'Juli';
								$monat_name['08'] = 'August';
								$monat_name['09'] = 'September';
								$monat_name['10'] = 'Oktober';
								$monat_name['11'] = 'November';
								$monat_name['12'] = 'Dezember';
								
								for($i=1;$i<=12;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
								
									if($value[$i] == $monat) {
										$selected[$i] = ' selected';
									} else {
										$selected[$i] = '';
									}
									
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$monat_name[$value[$i]].'</option>'.$nr;
								}  
							?>
					</select>
					<select name="beginYear">
						<?php
							$year = date('Y');
							$nr = '\n';
							for($i=2008;$i<=2015;$i++) {
								if($i == $year){
									$value[$i] = $i;
									$selected[$i] = ' selected';
								} else {
									$selected[$i] = '';
								}
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>
						<option value="2008" selected="selected">2008</option>
						<option value="2008">2009</option>
					</select>
				</td></tr>					
				<tr><td>Datum der Abreise:</td><td>
					<select name="endDay">
							<?php
								$tag = date('d');
								$nr = "\n";
								
								for($i=1;$i<=31;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
								
									if($value[$i] == $tag) {
										$selected[$i] = ' selected';
									} else {
										$selected[$i] = '';
									}
									
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
								}
							?>			
						</select>
						<select name="endMonth">
							<?php
								$monat = date('m');
								$nr = "\n";
								$monat_name['01'] = 'Januar';
								$monat_name['02'] = 'Februar';
								$monat_name['03'] = 'März';
								$monat_name['04'] = 'April';
								$monat_name['05'] = 'Mai';
								$monat_name['06'] = 'Juni';
								$monat_name['07'] = 'Juli';
								$monat_name['08'] = 'August';
								$monat_name['09'] = 'September';
								$monat_name['10'] = 'Oktober';
								$monat_name['11'] = 'November';
								$monat_name['12'] = 'Dezember';
								
								for($i=1;$i<=12;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
								
									if($value[$i] == $monat) {
										$selected[$i] = ' selected';
									} else {
										$selected[$i] = '';
									}
									
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$monat_name[$value[$i]].'</option>'.$nr;
								}  
							?>
						</select>
						<select name="endYear">
							<?php
							$year = date('Y');
							$nr = '\n';
							for($i=2008;$i<=2015;$i++) {
								if($i == $year){
									$value[$i] = $i;
									$selected[$i] = ' selected';
								} else {
									$selected[$i] = '';
								}
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>
						</select>
				</td></tr>
				<tr><td>Anzahl der Personen:</td><td><select name="beds">	
						<option value="1" label="1">1</option>
						<option value="2" label="2" selected="selected">2</option>
						<option value="3" label="3">3</option>
						<option label="4" value="4">4</option>
					</select></td></tr>
				<tr><td></td><td>
					<input type="submit" value="Preis berechnen" name="calc" />
					<input type="reset" value="Zurücksetzen" /></td></tr>			
				</td></tr></table></form>
			</table>
		</form>
			<?php
				if(isset($_GET['beginDay']))
				{
				echo '<table>
					<tr><td colspan=\"2\">Ergebnis der Berechnung:</td></tr>
					<tr><td colspan=\"2\">';
							echo '<b>Preis für '.$_GET['beds']; if($beds == 1){echo ' Person';}else{echo ' Personen';}
							echo ' vom '.$_GET['beginDay'].'.'.$_GET['beginMonth'].'.'.$_GET['beginYear'].' bis '
							.$_GET['endDay'].'.'.$_GET['endMonth'].'.'.$_GET['endYear'].':</b>';
				echo '</td></tr>
					<tr><td>Übernachtungspreis (inkl. Zu-/Abschläge)</td><td></td></tr>
					<tr><td><b>Gesamtpreis:</b></td><td></td></tr>
				</table>';
				}
			?>
 

Top_Gun

Aktives Mitglied

AW: Nach absenden anzeigen

Ok, also das mit der zweiten Form und dem Zurücksetzen:
Mache daraus:
HTML:
<tr><td></td><td> 
<input type="submit" value="Preis berechnen" name="calc" /> 
<input type="reset" value="Zurücksetzen" /></td></tr>             
</td></tr></table></form>
dies:

HTML:
<tr><td></td><td> 
<input type="submit" value="Preis berechnen" name="calc" /> 
</form><form action="index.php" method="get"> 
<input type="reset" value="Zurücksetzen" /></td></tr>             
</td></tr></table></form>
Du beendest also dein Formular nach dem "Preis berechnen" Button, in diesem stehen all deine Werte. Das zweite Formular schließ lediglich den "Zürücksetzen"-Button ein und übergibt gar keine Werte. Wenn du da drauf klickst wird also ein leeres Formular abgesendet und alles auf "Standard" zurückgesetzt.
Eigentlich ist es nur ein Link zum neuaufrufen der Seite...

Zum Thema mit dem "selected":
Du wendest das, was ich dir gesagt habe, hier schon an:
HTML:
if($value[$i] == $tag) { 
    $selected[$i] = ' selected'; 
} else { 
     $selected[$i] = '';
}
Verwende hier eine weitere IF-Abfrage um zu unterscheiden zwischen "Standard"- und "Eingegebenen"-Werten:
HTML:
if(isset($_GET['beginDay'])) {
    if($value[$i] == $_GET['beginDay') { 
        $selected[$i] = ' selected'; 
    } else { 
        $selected[$i] = '';
    }
} else { 
     if($value[$i] == $tag) { 
        $selected[$i] = ' selected'; 
    } else { 
        $selected[$i] = '';
    }
}
 

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Hallo nochmal,

also irgendwie funktioniert das nicht wiel ich hab ja da auch noch eine Tabell drin und wenn ich das form zuvor schließe dann passt das ja auch wieder nicht...
Entweder sitz ich grad auf der leitung oder ich weiß es wirklich nicht wie das gehen soll...
Denn so wie dus gepostet hast bekomm ich eine Fehlermeldung...?
 

Top_Gun

Aktives Mitglied

AW: Nach absenden anzeigen

Welche Fehlermeldung?

Ähm *hust* stimmt das Design könnte dabei zerrissen werden, das habe ich nicht bedacht. Müsste man mal testen wo die Tags stehen müssten damit es gut aussieht...

Edit: Ich sehe gerade, dass hier ne Klammer fehlt:

if($value[$i] == $_GET['beginDay']) {

Edit2: Und der "Zurücksetzen"-Button darf dann auch kein type="reset" sein sondern type="submit"

Edit3: Man da hab ich mir ja echte Schnitzer erlaubt... um es wieder gut zu machen:

HTML:
<tr><td></td><td>
<input type="submit" value="Preis berechnen" name="calc" />
</form><form style="display: inline;" action="index.php" method="get">
<input type="submit" value="Zurücksetzen" /></td></tr>
</td></tr></table></form>

PHP:
if(isset($_GET['beginDay'])) {
    if($value[$i] == $_GET['beginDay']) { 
        $selected[$i] = ' selected'; 
    } else { 
        $selected[$i] = '';
    }
} else { 
     if($value[$i] == $tag) { 
        $selected[$i] = ' selected'; 
    } else { 
        $selected[$i] = '';
    }
}

Die Lösung zerreißt dir das Design auch nicht mehr...
 
Zuletzt bearbeitet:

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Hm ok soweit sogut...
Nur irgendwie spuckt er immer noch nen Fehler aus...den ich leider nicht finden kann...
Er sollte eig. bis 2015 die Jahr hochzählen, macht er aber nicht..?

Hast du ne Idee?
Hier nochmal der Code
PHP:
<form action="index.php" method="get">
			<table>
				<tr><td colspan="2">
				<h2>Preis genau berechnen</h2>
				<p>Bitte geben Sie im unten stehendem Formular ihr Anreise- und Abreisedatum ein und wählen
				Sie die Anzahl der anreisenden Personen aus.<br/>
				Eine Buchung einer 2 Personen Ferienwohnung für eine Person ist nur zum Normalpreis möglich.</p></td></tr>
				<tr><td colspan="2">
					<?php
						echo 'Ist das Objekt belegt?';
					?>
				</td></tr>
				<tr><td>Datum der Anreise:</td><td>
					<select name="beginDay">
						<?php
							$tag = date('d');
							$nr = "\n";
							
							for($i=1;$i<=31;$i++) {
								if($i <= 9) {
									$value[$i] = '0'.$i;
								} else {
									$value[$i] = $i;
								}
								if(isset($_GET['beginDay'])) {
									if($value[$i] ==  $_GET['beginDay']) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}
								else {								
									if($value[$i] == $tag) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}							
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>			
					</select>
					<select name="beginMonth">
							<?php
								$monat = date('m');
								$nr = "\n";
								$monat_name['01'] = 'Januar';
								$monat_name['02'] = 'Februar';
								$monat_name['03'] = 'März';
								$monat_name['04'] = 'April';
								$monat_name['05'] = 'Mai';
								$monat_name['06'] = 'Juni';
								$monat_name['07'] = 'Juli';
								$monat_name['08'] = 'August';
								$monat_name['09'] = 'September';
								$monat_name['10'] = 'Oktober';
								$monat_name['11'] = 'November';
								$monat_name['12'] = 'Dezember';
								
								for($i=1;$i<=12;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
									if(isset($_GET['beginMonth'])) {
										if($value[$i] ==  $_GET['beginMonth']) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									else {								
										if($value[$i] == $monat) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$monat_name[$value[$i]].'</option>'.$nr;
								}  
							?>
					</select>
					<select name="beginYear">
						<?php
							$year = date('Y');
							$nr = '\n';
							for($i=2008;$i<=2015;$i++) {
								if(isset($_GET['beginYear'])) {
									if($value[$i] ==  $_GET['beginYear']) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}
								else {								
									if($value[$i] == $year) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>
						<option value="2008" selected="selected">2008</option>
						<option value="2008">2009</option>
					</select>
				</td></tr>					
				<tr><td>Datum der Abreise:</td><td>
					<select name="endDay">
							<?php
								$tag = date('d');
								$nr = "\n";
								
								for($i=1;$i<=31;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
									if(isset($_GET['endDay'])) {
										if($value[$i] ==  $_GET['endDay']) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									else {								
										if($value[$i] == $tag) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
								}
							?>			
						</select>
						<select name="endMonth">
							<?php
								$monat = date('m');
								$nr = "\n";
								$monat_name['01'] = 'Januar';
								$monat_name['02'] = 'Februar';
								$monat_name['03'] = 'März';
								$monat_name['04'] = 'April';
								$monat_name['05'] = 'Mai';
								$monat_name['06'] = 'Juni';
								$monat_name['07'] = 'Juli';
								$monat_name['08'] = 'August';
								$monat_name['09'] = 'September';
								$monat_name['10'] = 'Oktober';
								$monat_name['11'] = 'November';
								$monat_name['12'] = 'Dezember';
								
								for($i=1;$i<=12;$i++) {
									if($i <= 9) {
										$value[$i] = '0'.$i;
									} else {
										$value[$i] = $i;
									}
									if(isset($_GET['endMonth'])) {
										if($value[$i] ==  $_GET['endMonth']) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									else {								
										if($value[$i] == $monat) {
											$selected[$i] = ' selected'; }
										else {
											$selected[$i] = ''; }
									}
									echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$monat_name[$value[$i]].'</option>'.$nr;
								}  
							?>
						</select>
						<select name="endYear">
							<?php
							$year = date('Y');
							$nr = '\n';
							for($i=2008;$i<=2015;$i++) {
								if(isset($_GET['endYear'])) {
									if($value[$i] ==  $_GET['endYear']) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}
								else {								
									if($value[$i] == $year) {
										$selected[$i] = ' selected'; }
									else {
										$selected[$i] = ''; }
								}
								echo '<option value="'.$value[$i].'"'.$selected[$i].'>'.$value[$i].'</option>'.$nr;
							}
						?>
						</select>
				</td></tr>
				<tr><td>Anzahl der Personen:</td><td><select name="beds">	
						<option value="1" label="1">1</option>
						<option value="2" label="2" selected="selected">2</option>
						<option value="3" label="3">3</option>
						<option label="4" value="4">4</option>
					</select></td></tr>
				<tr><td></td><td><input type="submit" value="Preis berechnen" name="calc" />
								 <input type="reset" value="Zurücksetzen" /></td></tr>
			</table>
		</form>
		<?php
			if(isset($_GET['beginDay']))
			{
			echo '<table>
				<tr><td colspan=\"2\">Ergebnis der Berechnung:</td></tr>
				<tr><td colspan=\"2\">';
						echo '<b>Preis für '.$_GET['beds']; if($beds == 1){echo ' Person';}else{echo ' Personen';}
						echo ' vom '.$_GET['beginDay'].'.'.$_GET['beginMonth'].'.'.$_GET['beginYear'].' bis '
						.$_GET['endDay'].'.'.$_GET['endMonth'].'.'.$_GET['endYear'].':</b>';
			echo '</td></tr>
				<tr><td>Übernachtungspreis (inkl. Zu-/Abschläge)</td><td></td></tr>
				<tr><td><b>Gesamtpreis:</b></td><td></td></tr>
			</table>';
			}
		?>
 
Zuletzt bearbeitet:

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Fehler gefunden war nur eine Variable nicht vorhanden...:-(
Na ja sowas kostet ne Menge Zeit... ;-)

So jetzt probier ich das noch mit dem Form aber ich glaub nicht dass das funktioniert..



Ich muss mich schon wieder verbessern, es klappt doch, is eben nur nicht valide aber sonst super Sache :-D
DANKE
 
Zuletzt bearbeitet:

Top_Gun

Aktives Mitglied

AW: Nach absenden anzeigen

Das kann so auch nicht funktionieren... Vergleiche mal den Code für Jahr mit den für Tage zB...
Probiers mal so:
PHP:
<select name="endYear">
<?php
$year = date('y');
$nr = "\n";
for($i=2008;$i<=2015;$i++) {
    if(isset($_GET['endYear'])) {
        if($i ==  $_GET['endYear']) {
            $selected[$i] = ' selected';
        } else {
            $selected[$i] = '';
        }
    } else {                            
        if($i == $year) {
            $selected[$i] = ' selected';
        } else {
            $selected[$i] = '';
        }
    }
    echo '<option value="'.$i.'"'.$selected[$i].'>'.$i.'</option>'.$nr;
}  
?>
</select>

Ist aber ungetestet ;)
 

Smax

Aktives Mitglied

AW: Nach absenden anzeigen

Ne hab ich grad probiert das liegt doch an dem form... bzw. daran dass da ja praktisch 2 inneinander sind deshalb denk ich meldet er die Fehler...
Wüsste jetzt nicht wie ich die korrigiere ohne dann wieder auf das ein- ausblenden zu verzichten....
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
175.158
Beiträge
2.581.869
Mitglieder
67.223
Neuestes Mitglied
Desiree
Oben